You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2014/10/29 11:30:26 UTC
git commit: https://issues.apache.org/jira/browse/AMQ-5417 - use
proper classloader in TaskRunnerFactory
Repository: activemq
Updated Branches:
refs/heads/trunk adafdfe97 -> dffccb1c7
https://issues.apache.org/jira/browse/AMQ-5417 - use proper classloader in TaskRunnerFactory
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/dffccb1c
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/dffccb1c
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/dffccb1c
Branch: refs/heads/trunk
Commit: dffccb1c7dc8e4b4a6282fd5056dfd854d2d2a9b
Parents: adafdfe
Author: Dejan Bosanac <de...@nighttale.net>
Authored: Wed Oct 29 11:30:15 2014 +0100
Committer: Dejan Bosanac <de...@nighttale.net>
Committed: Wed Oct 29 11:30:15 2014 +0100
----------------------------------------------------------------------
.../main/java/org/apache/activemq/broker/BrokerService.java | 1 +
.../java/org/apache/activemq/thread/TaskRunnerFactory.java | 8 ++++++++
2 files changed, 9 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/dffccb1c/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
index 5c36034..3af7075 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
@@ -1202,6 +1202,7 @@ public class BrokerService implements Service {
if (this.taskRunnerFactory == null) {
this.taskRunnerFactory = new TaskRunnerFactory("ActiveMQ BrokerService["+getBrokerName()+"] Task", getTaskRunnerPriority(), true, 1000,
isDedicatedTaskRunner());
+ this.taskRunnerFactory.setThreadClassLoader(this.getClass().getClassLoader());
}
return this.taskRunnerFactory;
}
http://git-wip-us.apache.org/repos/asf/activemq/blob/dffccb1c/activemq-client/src/main/java/org/apache/activemq/thread/TaskRunnerFactory.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/thread/TaskRunnerFactory.java b/activemq-client/src/main/java/org/apache/activemq/thread/TaskRunnerFactory.java
index 86f4f3f..d6b1938 100755
--- a/activemq-client/src/main/java/org/apache/activemq/thread/TaskRunnerFactory.java
+++ b/activemq-client/src/main/java/org/apache/activemq/thread/TaskRunnerFactory.java
@@ -53,6 +53,7 @@ public class TaskRunnerFactory implements Executor {
private final AtomicBoolean initDone = new AtomicBoolean(false);
private int maxThreadPoolSize = Integer.MAX_VALUE;
private RejectedExecutionHandler rejectedTaskHandler = null;
+ private ClassLoader threadClassLoader;
public TaskRunnerFactory() {
this("ActiveMQ Task");
@@ -172,6 +173,9 @@ public class TaskRunnerFactory implements Executor {
Thread thread = new Thread(runnable, threadName);
thread.setDaemon(daemon);
thread.setPriority(priority);
+ if (threadClassLoader != null) {
+ thread.setContextClassLoader(threadClassLoader);
+ }
LOG.trace("Created thread[{}]: {}", threadName, thread);
return thread;
@@ -239,6 +243,10 @@ public class TaskRunnerFactory implements Executor {
this.maxThreadPoolSize = maxThreadPoolSize;
}
+ public void setThreadClassLoader(ClassLoader threadClassLoader) {
+ this.threadClassLoader = threadClassLoader;
+ }
+
public RejectedExecutionHandler getRejectedTaskHandler() {
return rejectedTaskHandler;
}