Fix for kafka partitioner static initializer in OSGI env
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/eba0e077 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/eba0e077 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/eba0e077 Branch: refs/heads/master Commit: eba0e077e6b38c4d01eb22b13816aae99d4819a4 Parents: eb7e824 Author: John Moon <[email protected]> Authored: Wed Jun 29 14:44:55 2016 -0400 Committer: Claus Ibsen <[email protected]> Committed: Fri Jul 1 08:28:53 2016 +0200 ---------------------------------------------------------------------- .../java/org/apache/camel/component/kafka/KafkaProducer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/eba0e077/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java index b1a496c..6170151 100644 --- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java +++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java @@ -80,7 +80,13 @@ public class KafkaProducer extends DefaultAsyncProducer { protected void doStart() throws Exception { Properties props = getProps(); if (kafkaProducer == null) { - kafkaProducer = new org.apache.kafka.clients.producer.KafkaProducer(props); + ClassLoader threadClassLoader = Thread.currentThread().getContextClassLoader(); + try { + Thread.currentThread().setContextClassLoader(null); + kafkaProducer = new org.apache.kafka.clients.producer.KafkaProducer(props); + } finally { + Thread.currentThread().setContextClassLoader(threadClassLoader); + } } // if we are in asynchronous mode we need a worker pool
