CAMEL-9543 - Discovering new type converters in OSGi wipes out those manually 
added


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/206a4643
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/206a4643
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/206a4643

Branch: refs/heads/camel-2.16.x
Commit: 206a4643461c4f715b5f8c17453e63e651f1e1b3
Parents: b4f2374
Author: Jonathan Anstey <jans...@gmail.com>
Authored: Wed Jan 27 23:53:45 2016 -0330
Committer: Jonathan Anstey <jans...@gmail.com>
Committed: Wed Jan 27 23:54:12 2016 -0330

----------------------------------------------------------------------
 .../apache/camel/core/osgi/OsgiTypeConverter.java  | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/206a4643/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java
----------------------------------------------------------------------
diff --git 
a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java
 
b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java
index c25e479..46767fe 100644
--- 
a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java
+++ 
b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java
@@ -62,19 +62,8 @@ public class OsgiTypeConverter extends ServiceSupport 
implements TypeConverter,
     }
 
     public Object addingService(ServiceReference<TypeConverterLoader> 
serviceReference) {
-        LOG.trace("AddingService: {}", serviceReference);
+        LOG.trace("AddingService: {}, Bundle: {}", serviceReference, 
serviceReference.getBundle());        
         TypeConverterLoader loader = 
bundleContext.getService(serviceReference);
-        // just make sure we don't load the bundle converter this time
-        if (delegate != null) {
-            try {
-                ServiceHelper.stopService(this.delegate);
-            } catch (Exception e) {
-                // ignore
-                LOG.debug("Error stopping service due: " + e.getMessage() + ". 
This exception will be ignored.", e);
-            }
-            // It can force camel to reload the type converter again
-            this.delegate = null;
-        }
         return loader;
     }
 
@@ -82,7 +71,7 @@ public class OsgiTypeConverter extends ServiceSupport 
implements TypeConverter,
     }
 
     public void removedService(ServiceReference<TypeConverterLoader> 
serviceReference, Object o) {
-        LOG.trace("RemovedService: {}", serviceReference);
+        LOG.trace("RemovedService: {}, Bundle: {}", serviceReference, 
serviceReference.getBundle());  
         try {
             ServiceHelper.stopService(this.delegate);
         } catch (Exception e) {
@@ -91,6 +80,8 @@ public class OsgiTypeConverter extends ServiceSupport 
implements TypeConverter,
         }
         // It can force camel to reload the type converter again
         this.delegate = null;
+        
+        // TODO: reloading all type converters when one service is removed is 
suboptimal...
     }
 
     @Override

Reply via email to