Skip to content

Commit 1614f1c

Browse files
committed
Fix NullReferenceException in internal Proxify extension.
When a resource is requested for an unknonw id the Facade should return null. the extension method to create the proxy can not handle null values, however. The NullReferenceexception only occurs two layers deeper, where we correctly assume not to create a proxy for null.
1 parent 8e6ae98 commit 1614f1c

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/Moryx.Resources.Management/Facades/ResourceManagementFacade.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,35 +59,35 @@ private void OnResourceRemoved(object sender, IPublicResource publicResource)
5959
public TResource GetResource<TResource>() where TResource : class, IPublicResource
6060
{
6161
ValidateHealthState();
62-
return ResourceGraph.GetResource<TResource>().Proxify(TypeController);
62+
return ResourceGraph.GetResource<TResource>()?.Proxify(TypeController);
6363
}
6464

6565
public TResource GetResource<TResource>(long id)
6666
where TResource : class, IPublicResource
6767
{
6868
ValidateHealthState();
69-
return ResourceGraph.GetResource<TResource>(id).Proxify(TypeController);
69+
return ResourceGraph.GetResource<TResource>(id)?.Proxify(TypeController);
7070
}
7171

7272
public TResource GetResource<TResource>(string name)
7373
where TResource : class, IPublicResource
7474
{
7575
ValidateHealthState();
76-
return ResourceGraph.GetResource<TResource>(name).Proxify(TypeController);
76+
return ResourceGraph.GetResource<TResource>(name)?.Proxify(TypeController);
7777
}
7878

7979
public TResource GetResource<TResource>(ICapabilities requiredCapabilities)
8080
where TResource : class, IPublicResource
8181
{
8282
ValidateHealthState();
83-
return ResourceGraph.GetResource<TResource>(r => requiredCapabilities.ProvidedBy(r.Capabilities)).Proxify(TypeController);
83+
return ResourceGraph.GetResource<TResource>(r => requiredCapabilities.ProvidedBy(r.Capabilities))?.Proxify(TypeController);
8484
}
8585

8686
public TResource GetResource<TResource>(Func<TResource, bool> predicate)
8787
where TResource : class, IPublicResource
8888
{
8989
ValidateHealthState();
90-
return ResourceGraph.GetResource(predicate).Proxify(TypeController);
90+
return ResourceGraph.GetResource(predicate)?.Proxify(TypeController);
9191
}
9292

9393
public IEnumerable<TResource> GetResources<TResource>() where TResource : class, IPublicResource

0 commit comments

Comments
 (0)