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 2012/10/13 17:44:45 UTC

svn commit: r1397865 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java

Author: rmannibucau
Date: Sat Oct 13 15:44:45 2012
New Revision: 1397865

URL: http://svn.apache.org/viewvc?rev=1397865&view=rev
Log:
TOMEE-462 try system classloader before defining the class in tempclassloader - embedded case is a bit different

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java?rev=1397865&r1=1397864&r2=1397865&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java Sat Oct 13 15:44:45 2012
@@ -47,11 +47,13 @@ import java.util.Set;
 public class TempClassLoader extends URLClassLoader {
     private final Set<Skip> skip;
     private final ClassLoader system;
+    private final boolean embedded;
 
     public TempClassLoader(ClassLoader parent) {
         super(new URL[0], parent);
         skip = SystemInstance.get().getOptions().getAll("openejb.tempclassloader.skip", Skip.NONE);
         system = ClassLoader.getSystemClassLoader();
+        embedded = getClass().getClassLoader() == system;
     }
 
     /*
@@ -95,7 +97,7 @@ public class TempClassLoader extends URL
         // don't load classes from app classloader
         // we do it after the previous one since it will probably result to the same
         // Class and the previous one is faster than this one
-        if (URLClassLoaderFirst.canBeLoadedFromSystem(name)) {
+        if (!embedded && URLClassLoaderFirst.canBeLoadedFromSystem(name)) {
             try {
                 c = system.loadClass(name);
                 if (c != null) {