commit | aae0cd89766993f4105459ccd3aa31bc1071d4a2 | [log] [tgz] |
---|---|---|
author | Richard S. Hall <rickhall@apache.org> | Fri Feb 20 16:36:57 2009 +0000 |
committer | Richard S. Hall <rickhall@apache.org> | Fri Feb 20 16:36:57 2009 +0000 |
tree | a15318f2b5b8ae6fb8fd976cffbf7ecafdbfd9d0 | |
parent | e2cb6fdcd636af82bf6a1ea4e8a6a9c2847c95ef [diff] |
When unregistering all services for a bundle, verify each registration is valid before unregistering, since it is possible that an event from a subsequent unregister caused the unregistering of another service. (FELIX-952) git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@746289 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java b/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java index 6bb1727..2d60732 100644 --- a/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java +++ b/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java
@@ -141,7 +141,10 @@ // Unregister each service. for (int i = 0; (regs != null) && (i < regs.length); i++) { - regs[i].unregister(); + if (((ServiceRegistrationImpl) regs[i]).isValid()) + { + regs[i].unregister(); + } } // Now remove the bundle itself.