Merge pull request #24 from amichair/ARIES-1907

ARIES-1907 - Fix IllegalStateException when stopping bundle
diff --git a/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminFactory.java b/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminFactory.java
index 92c189b..ef64adf 100644
--- a/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminFactory.java
+++ b/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminFactory.java
@@ -46,6 +46,6 @@
                                           RemoteServiceAdmin serviceObject) {
         LOG.debug("RemoteServiceAdmin ServiceInstance removed for Bundle {}", b.getSymbolicName());
         instances--;
-        ((RemoteServiceAdminInstance)serviceObject).close(instances == 0);
+        ((RemoteServiceAdminInstance)serviceObject).close(b, instances == 0);
     }
 }
diff --git a/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminInstance.java b/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminInstance.java
index 7158f52..a5e8135 100644
--- a/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminInstance.java
+++ b/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminInstance.java
@@ -25,6 +25,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
@@ -78,9 +79,9 @@
         });
     }
 
-    public void close(boolean closeAll) {
+    public void close(Bundle bundle, boolean closeAll) {
         closed = true;
-        rsaCore.removeExportRegistrations(bctx.getBundle());
+        rsaCore.removeExportRegistrations(bundle);
         if (closeAll) {
             rsaCore.close();
         }