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);

Reply via email to