Avoid NPE and use a more meaningful exception for the case of an unregistered service
Project: http://git-wip-us.apache.org/repos/asf/aries-rsa/repo Commit: http://git-wip-us.apache.org/repos/asf/aries-rsa/commit/b4a95725 Tree: http://git-wip-us.apache.org/repos/asf/aries-rsa/tree/b4a95725 Diff: http://git-wip-us.apache.org/repos/asf/aries-rsa/diff/b4a95725 Branch: refs/heads/master Commit: b4a95725d1e151967c858a9bb39205045ae4a20d Parents: 9020564 Author: Christian Schneider <[email protected]> Authored: Wed May 3 11:19:17 2017 +0200 Committer: Christian Schneider <[email protected]> Committed: Wed May 3 11:19:17 2017 +0200 ---------------------------------------------------------------------- .../java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/b4a95725/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java ---------------------------------------------------------------------- diff --git a/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java b/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java index 5396a66..fa04b10 100644 --- a/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java +++ b/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java @@ -201,7 +201,11 @@ public class RemoteServiceAdminCore implements RemoteServiceAdmin { try { Class<?>[] interfaces = getInterfaces(interfaceNames, serviceReference.getBundle()); Map<String, Object> eprops = createEndpointProps(serviceProperties, interfaces); - BundleContext serviceContext = serviceReference.getBundle().getBundleContext(); + Bundle bundle = serviceReference.getBundle(); + if (bundle == null) { + throw new IllegalStateException("Service is already unregistered"); + } + BundleContext serviceContext = bundle.getBundleContext(); // TODO unget service when export is destroyed Object serviceO = serviceContext.getService(serviceReference);
