Skip to content

After enabling options.EnableResourceHooks = true; I get a NullReference on GET Articles/GetSecondary [id/relationshipName] #924

@woofi7

Description

@woofi7

DESCRIPTION

The request is crashing on this line because the type is IIdentifiable instead of the implemented type Image.
https://github.com/json-api-dotnet/JsonApiDotNetCore/blob/master/src/JsonApiDotNetCore/Configuration/ResourceGraph.cs#L85

The implementation seems to be lost at this place:
https://github.com/json-api-dotnet/JsonApiDotNetCore/blob/master/src/JsonApiDotNetCore/Hooks/Internal/ResourceHookExecutorFacade.cs#L131

System.NullReferenceException: Object reference not set to an instance of an object. at JsonApiDotNetCore.Configuration.ResourceGraph.GetRelationships C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Configuration\ResourceGraph.cs:85 at JsonApiDotNetCore.Hooks.Internal.Traversal.TraversalHelper.RegisterRelationshipProxies C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Hooks\Internal\Traversal\TraversalHelper.cs:200 at JsonApiDotNetCore.Hooks.Internal.Traversal.TraversalHelper.CreateRootNode C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Hooks\Internal\Traversal\TraversalHelper.cs:56 at JsonApiDotNetCore.Hooks.Internal.ResourceHookExecutor.GetHook C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Hooks\Internal\ResourceHookExecutor.cs:199 at JsonApiDotNetCore.Hooks.Internal.ResourceHookExecutor.OnReturn C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Hooks\Internal\ResourceHookExecutor.cs:121 at JsonApiDotNetCore.Hooks.Internal.ResourceHookExecutorFacade.OnReturnRelationship C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Hooks\Internal\ResourceHookExecutorFacade.cs:131 at JsonApiDotNetCore.Services.JsonApiResourceService`2+<GetSecondaryAsync>d__11.MoveNext C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Services\JsonApiResourceService.cs:137 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult at JsonApiDotNetCore.Controllers.BaseJsonApiController`2+<GetSecondaryAsync>d__17.MoveNext C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Controllers\BaseJsonApiController.cs:131 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult at JsonApiDotNetCore.Controllers.JsonApiController`2+<GetSecondaryAsync>d__4.MoveNext C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Controllers\JsonApiController.cs:65 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor+TaskOfIActionResultExecutor+<Execute>d__0.MoveNext at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd at System.Threading.Tasks.ValueTask`1.get_Result at System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker+<<InvokeActionMethodAsync>g__Logged|12_1>d.MoveNext at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd at System.Runtime.CompilerServices.TaskAwaiter.GetResult at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker+<<InvokeNextActionFilterAsync>g__Awaited|10_0>d.MoveNext at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker+<<InvokeInnerFilterAsync>g__Awaited|13_0>d.MoveNext at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd at System.Runtime.CompilerServices.TaskAwaiter.GetResult at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker+<<InvokeNextExceptionFilterAsync>g__Awaited|25_0>d.MoveNext 

VERSIONS USED

  • JsonApiDotNetCore version: 4.0.1
  • ASP.NET Core version: 5.0
  • Entity Framework Core version: 5.0
  • Database provider: Pomelo.Mysql

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions