You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/01/21 09:09:33 UTC
tomee git commit: TOMEE-1696 ensure lazy resources use by default
container loader (UseAppClassLoader=false or null). Was not the case for auto
created resources
Repository: tomee
Updated Branches:
refs/heads/master 2b5518c58 -> 0f8fd20bd
TOMEE-1696 ensure lazy resources use by default container loader (UseAppClassLoader=false or null). Was not the case for auto created resources
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/0f8fd20b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/0f8fd20b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/0f8fd20b
Branch: refs/heads/master
Commit: 0f8fd20bd519218f3b9fdeb85b8ca010db353b53
Parents: 2b5518c
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Thu Jan 21 09:09:26 2016 +0100
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Thu Jan 21 09:09:26 2016 +0100
----------------------------------------------------------------------
.../openejb/assembler/classic/Assembler.java | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/0f8fd20b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index 4b5ed1f..ef6544b 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -2659,7 +2659,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
public void createResource(final ResourceInfo serviceInfo) throws OpenEJBException {
final boolean usesCdiPwdCipher = usesCdiPwdCipher(serviceInfo);
final Object service = "true".equalsIgnoreCase(String.valueOf(serviceInfo.properties.remove("Lazy"))) || usesCdiPwdCipher ?
- newLazyResource(serviceInfo) :
+ newLazyResource(serviceInfo) :
doCreateResource(serviceInfo);
if (usesCdiPwdCipher && !serviceInfo.properties.contains("InitializeAfterDeployment")) {
serviceInfo.properties.put("InitializeAfterDeployment", "true");
@@ -2696,25 +2696,22 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
}
private LazyResource newLazyResource(final ResourceInfo serviceInfo) {
- final ClassLoader loader = Thread.currentThread().getContextClassLoader();
return new LazyResource(new Callable<Object>() {
@Override
public Object call() throws Exception {
final boolean appClassLoader = "true".equals(serviceInfo.properties.remove("UseAppClassLoader"));
- ClassLoader old = null;
-
+ final Thread thread = Thread.currentThread();
+ final ClassLoader old = thread.getContextClassLoader();
if (!appClassLoader) {
- old = Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(loader);
- }
+ final ClassLoader classLoader = Assembler.class.getClassLoader();
+ thread.setContextClassLoader(classLoader == null ? ClassLoader.getSystemClassLoader() : classLoader);
+ } // else contextually we should have the app loader
try {
return doCreateResource(serviceInfo);
} finally {
- if (old != null) {
- Thread.currentThread().setContextClassLoader(old);
- }
+ thread.setContextClassLoader(old);
}
}
});