diff options
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.java | 14 |
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? } } |