You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by al...@apache.org on 2015/10/26 11:40:34 UTC

svn commit: r1710559 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java

Author: alexparvulescu
Date: Mon Oct 26 10:40:34 2015
New Revision: 1710559

URL: http://svn.apache.org/viewvc?rev=1710559&view=rev
Log:
OAK-3409 CompositeRegistration.unregister diagnostics not helpful

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java?rev=1710559&r1=1710558&r2=1710559&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/OsgiWhiteboard.java Mon Oct 26 10:40:34 2015
@@ -42,12 +42,17 @@ import org.osgi.framework.ServiceReferen
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.util.tracker.ServiceTracker;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * OSGi-based whiteboard implementation.
  */
 public class OsgiWhiteboard implements Whiteboard {
 
+    private static final Logger log = LoggerFactory
+            .getLogger(OsgiWhiteboard.class);
+
     private final BundleContext context;
 
     public OsgiWhiteboard(@Nonnull BundleContext context) {
@@ -56,7 +61,7 @@ public class OsgiWhiteboard implements W
 
     @Override
     public <T> Registration register(
-            Class<T> type, T service, Map<?, ?> properties) {
+            final Class<T> type, final T service, Map<?, ?> properties) {
         checkNotNull(type);
         checkNotNull(service);
         checkNotNull(properties);
@@ -72,7 +77,12 @@ public class OsgiWhiteboard implements W
         return new Registration() {
             @Override
             public void unregister() {
-                registration.unregister();
+                try {
+                    registration.unregister();
+                } catch (IllegalStateException ex) {
+                    log.warn("Error unregistering service: {} of type {}",
+                            service, type.getName(), ex);
+                }
             }
         };
     }