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