This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 080ad19852bca149255839999c21a67dd3ede0e9
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Aug 6 10:34:52 2019 +0200

    CAMEL-10456: Restoring old TCCL should store old value regardless if it was 
null, as otherwise it can leak changing the TCCL.
---
 .../java/org/apache/camel/component/chunk/ChunkEndpoint.java     | 4 +---
 .../org/apache/camel/component/jcache/osgi/OSGiCacheManager.java | 4 +---
 .../main/java/org/apache/camel/component/jms/JmsProducer.java    | 6 ++----
 .../org/apache/camel/component/mustache/MustacheEndpoint.java    | 4 +---
 .../org/apache/camel/component/rabbitmq/RabbitMQProducer.java    | 4 +---
 .../camel/spring/scan/DefaultPackageScanClassResolverTest.java   | 9 ++-------
 .../src/main/java/org/apache/camel/support/ObjectHelper.java     | 6 ++----
 7 files changed, 10 insertions(+), 27 deletions(-)

diff --git 
a/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
 
b/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
index 9773a80..1a4d8cf 100644
--- 
a/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
+++ 
b/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
@@ -147,9 +147,7 @@ public class ChunkEndpoint extends ResourceEndpoint {
             return newChunk;
         } finally {
             resourceReader.close();
-            if (oldcl != null) {
-                Thread.currentThread().setContextClassLoader(oldcl);
-            }
+            Thread.currentThread().setContextClassLoader(oldcl);
         }
     }
 
diff --git 
a/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/osgi/OSGiCacheManager.java
 
b/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/osgi/OSGiCacheManager.java
index e6bfc9f..2641a81 100644
--- 
a/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/osgi/OSGiCacheManager.java
+++ 
b/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/osgi/OSGiCacheManager.java
@@ -56,9 +56,7 @@ public final class OSGiCacheManager<K, V> extends 
JCacheManager {
 
             return cache;
         } finally {
-            if (jcl != null) {
-                Thread.currentThread().setContextClassLoader(tccl);
-            }
+            Thread.currentThread().setContextClassLoader(tccl);
         }
     }
 
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
index cdf0ac2..ae532db 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
@@ -81,7 +81,7 @@ public class JmsProducer extends DefaultAsyncProducer {
                 // must use the classloader from the application context when 
creating reply manager,
                 // as it should inherit the classloader from app context and 
not the current which may be
                 // a different classloader
-                ClassLoader current = 
Thread.currentThread().getContextClassLoader();
+                ClassLoader oldClassLoader = 
Thread.currentThread().getContextClassLoader();
                 ClassLoader ac = 
endpoint.getCamelContext().getApplicationContextClassLoader();
                 try {
                     if (ac != null) {
@@ -108,9 +108,7 @@ public class JmsProducer extends DefaultAsyncProducer {
                 } catch (Exception e) {
                     throw new FailedToCreateProducerException(endpoint, e);
                 } finally {
-                    if (ac != null) {
-                        Thread.currentThread().setContextClassLoader(current);
-                    }
+                    
Thread.currentThread().setContextClassLoader(oldClassLoader);
                 }
                 started.set(true);
             }
diff --git 
a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
 
b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
index 1733bf0..16cb62f 100644
--- 
a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
+++ 
b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
@@ -132,9 +132,7 @@ public class MustacheEndpoint extends ResourceEndpoint {
             return newMustache;
         } finally {
             resourceReader.close();
-            if (oldcl != null) {
-                Thread.currentThread().setContextClassLoader(oldcl);
-            }
+            Thread.currentThread().setContextClassLoader(oldcl);
         }
     }
 
diff --git 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java
 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java
index e2f066e..f59fa9b 100644
--- 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java
+++ 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java
@@ -340,9 +340,7 @@ public class RabbitMQProducer extends DefaultAsyncProducer {
                 } catch (Exception e) {
                     throw new FailedToCreateProducerException(getEndpoint(), 
e);
                 } finally {
-                    if (ac != null) {
-                        Thread.currentThread().setContextClassLoader(current);
-                    }
+                    Thread.currentThread().setContextClassLoader(current);
                 }
                 started.set(true);
             }
diff --git 
a/components/camel-spring/src/test/java/org/apache/camel/spring/scan/DefaultPackageScanClassResolverTest.java
 
b/components/camel-spring/src/test/java/org/apache/camel/spring/scan/DefaultPackageScanClassResolverTest.java
index 0b1c99d..d9236fc 100644
--- 
a/components/camel-spring/src/test/java/org/apache/camel/spring/scan/DefaultPackageScanClassResolverTest.java
+++ 
b/components/camel-spring/src/test/java/org/apache/camel/spring/scan/DefaultPackageScanClassResolverTest.java
@@ -153,7 +153,6 @@ public class DefaultPackageScanClassResolverTest extends 
org.apache.camel.spring
             URL urls[] = {new URL("jar:" + url.toString() + "!/")};
             URLClassLoader classLoader = new URLClassLoader(urls, 
savedClassLoader);
 
-
             Thread.currentThread().setContextClassLoader(classLoader);
 
             // recreate resolver since we mess with context class loader
@@ -165,9 +164,7 @@ public class DefaultPackageScanClassResolverTest extends 
org.apache.camel.spring
             assertEquals(1, scanned.size());
             assertEquals("class a.b.c.Test", 
scanned.iterator().next().toString());            
         } finally {
-            if (savedClassLoader != null) {
-                Thread.currentThread().setContextClassLoader(savedClassLoader);
-            } 
+            Thread.currentThread().setContextClassLoader(savedClassLoader);
         }
     }
     
@@ -193,9 +190,7 @@ public class DefaultPackageScanClassResolverTest extends 
org.apache.camel.spring
             assertEquals(1, scanned.size());
             assertEquals("class a.b.c.Test", 
scanned.iterator().next().toString());
         } finally {
-            if (savedClassLoader != null) {
-                Thread.currentThread().setContextClassLoader(savedClassLoader);
-            }
+            Thread.currentThread().setContextClassLoader(savedClassLoader);
         }
     }
 
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/ObjectHelper.java 
b/core/camel-support/src/main/java/org/apache/camel/support/ObjectHelper.java
index 69b477a..fd51dcb 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/ObjectHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/ObjectHelper.java
@@ -297,16 +297,14 @@ public final class ObjectHelper {
      * @return the result of Callable return
      */
     public static Object callWithTCCL(Callable<?> call, ClassLoader 
classloader) throws Exception {
-        ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+        final ClassLoader tccl = 
Thread.currentThread().getContextClassLoader();
         try {
             if (classloader != null) {
                 Thread.currentThread().setContextClassLoader(classloader);
             }
             return call.call();
         } finally {
-            if (tccl != null) {
-                Thread.currentThread().setContextClassLoader(tccl);
-            }
+            Thread.currentThread().setContextClassLoader(tccl);
         }
     }
 

Reply via email to