Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/bundles/ch.ethz.iks.r_osgi.remote/src')
-rw-r--r--protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java b/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java
index 87896fba1..85acd857e 100644
--- a/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java
+++ b/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java
@@ -962,9 +962,19 @@ public final class ChannelEndpointImpl implements ChannelEndpoint {
*/
void ungetRemoteService(final URI uri) {
try {
- ((Bundle) proxyBundles.remove(uri.getFragment())).uninstall();
+ Bundle bundle = (Bundle) proxyBundles.remove(uri.getFragment());
+ // see https://bugs.eclipse.org/420897
+ if (bundle != null) {
+ bundle.uninstall();
+ } else {
+ RemoteOSGiServiceImpl.log
+ .log(LogService.LOG_WARNING,
+ "failed to uninstall non-existant bundle " + uri.getFragment()); //$NON-NLS-1$
+ }
} catch (final BundleException be) {
-
+ // TODO Could a BE indicate that the old proxy bundle (which failed
+ // to uninstall) will prevent future proxy bundles from
+ // installing/resolving?
}
}

Back to the top