Author: rmannibucau
Date: Wed Dec  5 09:13:40 2012
New Revision: 1417322

URL: http://svn.apache.org/viewvc?rev=1417322&view=rev
Log:
OPENEJB-1961 Classloader memory leak by Threads which is started by 
org.apache.openejb.loader.Files + trying to keep tempclassloader loadclass 
rules in tomcat webapp classloader + using OWB 1.1.7 snapshot since the API is 
a bit broken and the snapshot should be available soon enough for our release

Removed:
    openejb/trunk/openejb/deps/webbeans-impl/
Modified:
    openejb/trunk/openejb/container/openejb-core/pom.xml
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
    
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java
    openejb/trunk/openejb/deps/pom.xml
    openejb/trunk/openejb/pom.xml
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
    openejb/trunk/openejb/tomee/tomee-webapp/pom.xml

Modified: openejb/trunk/openejb/container/openejb-core/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/pom.xml?rev=1417322&r1=1417321&r2=1417322&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/pom.xml (original)
+++ openejb/trunk/openejb/container/openejb-core/pom.xml Wed Dec  5 09:13:40 
2012
@@ -558,26 +558,13 @@
       <type>jar</type>
       <scope>test</scope>
     </dependency>
-    <!--
     <dependency>
       <groupId>org.apache.openwebbeans</groupId>
       <artifactId>openwebbeans-impl</artifactId>
     </dependency>
-    -->
-    <dependency>
-      <groupId>org.apache.openejb.patch</groupId>
-      <artifactId>openwebbeans-impl-patch</artifactId>
-      <version>1.1.7-patch-SNAPSHOT</version>
-    </dependency>
     <dependency>
       <groupId>org.apache.openwebbeans</groupId>
       <artifactId>openwebbeans-spi</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.apache.openwebbeans</groupId>
-          <artifactId>openwebbeans-impl</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.openwebbeans</groupId>
@@ -587,41 +574,19 @@
           <groupId>org.apache.geronimo.specs</groupId>
           <artifactId>geronimo-ejb_3.1_spec</artifactId>
         </exclusion>
-        <exclusion>
-          <groupId>org.apache.openwebbeans</groupId>
-          <artifactId>openwebbeans-impl</artifactId>
-        </exclusion>
       </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.openwebbeans</groupId>
       <artifactId>openwebbeans-ee</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.apache.openwebbeans</groupId>
-          <artifactId>openwebbeans-impl</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <artifactId>openwebbeans-ee-common</artifactId>
       <groupId>org.apache.openwebbeans</groupId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.apache.openwebbeans</groupId>
-          <artifactId>openwebbeans-impl</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.openwebbeans</groupId>
       <artifactId>openwebbeans-web</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.apache.openwebbeans</groupId>
-          <artifactId>openwebbeans-impl</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.javassist</groupId>

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java?rev=1417322&r1=1417321&r2=1417322&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
 Wed Dec  5 09:13:40 2012
@@ -166,18 +166,14 @@ public class URLClassLoaderFirst extends
 
     // making all these call inline if far more costly than factorizing 
packages
     public static boolean shouldSkip(final String name) {
-        if (FORCED_SKIP != null) {
-            for (String prefix : FORCED_SKIP) {
-                if (name.startsWith(prefix)) {
-                    return true;
-                }
+        for (String prefix : FORCED_SKIP) {
+            if (name.startsWith(prefix)) {
+                return true;
             }
         }
-        if (FORCED_LOAD != null) {
-            for (String prefix : FORCED_LOAD) {
-                if (name.startsWith(prefix)) {
-                    return false;
-                }
+        for (String prefix : FORCED_LOAD) {
+            if (name.startsWith(prefix)) {
+                return false;
             }
         }
 

Modified: 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java?rev=1417322&r1=1417321&r2=1417322&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java
 Wed Dec  5 09:13:40 2012
@@ -165,12 +165,14 @@ public class Files {
     static final List<String> delete = new ArrayList<String>();
 
     static {
-        Runtime.getRuntime().addShutdownHook(new Thread() {
+        final Thread deleteShutdownHook = new Thread() {
             @Override
             public void run() {
                 delete();
             }
-        });
+        };
+        deleteShutdownHook.setContextClassLoader(Files.class.getClassLoader());
+        Runtime.getRuntime().addShutdownHook(deleteShutdownHook);
     }
 
     public static void deleteOnExit(File file) {

Modified: openejb/trunk/openejb/deps/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/deps/pom.xml?rev=1417322&r1=1417321&r2=1417322&view=diff
==============================================================================
--- openejb/trunk/openejb/deps/pom.xml (original)
+++ openejb/trunk/openejb/deps/pom.xml Wed Dec  5 09:13:40 2012
@@ -29,6 +29,5 @@
 
   <modules>
     <module>mbean-annotation-api</module>
-    <module>webbeans-impl</module>
   </modules>
 </project>

Modified: openejb/trunk/openejb/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/pom.xml?rev=1417322&r1=1417321&r2=1417322&view=diff
==============================================================================
--- openejb/trunk/openejb/pom.xml (original)
+++ openejb/trunk/openejb/pom.xml Wed Dec  5 09:13:40 2012
@@ -145,7 +145,7 @@
     <junit.version>4.9</junit.version>
     <org.apache.axis2.version>1.4.1</org.apache.axis2.version>
     <scannotation.version>1.0.2</scannotation.version>
-    <org.apache.openwebbeans.version>1.1.6</org.apache.openwebbeans.version>
+    
<org.apache.openwebbeans.version>1.1.7-SNAPSHOT</org.apache.openwebbeans.version>
     <geronimo.connector.version>3.1.1</geronimo.connector.version>
     <geronimo-osgi.version>1.1</geronimo-osgi.version>
     
<geronimo-javamail_1.4_spec.version>1.7.1</geronimo-javamail_1.4_spec.version>

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java?rev=1417322&r1=1417321&r2=1417322&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
 Wed Dec  5 09:13:40 2012
@@ -83,6 +83,11 @@ public class LazyStopWebappClassLoader e
                 }
             }
         }
+
+        // avoid to redefine classes from server in this classloader is it not 
already loaded
+        if (URLClassLoaderFirst.shouldSkip(name)) {
+            return getParent().loadClass(name);
+        }
         return super.loadClass(name);
     }
 

Modified: openejb/trunk/openejb/tomee/tomee-webapp/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/pom.xml?rev=1417322&r1=1417321&r2=1417322&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/pom.xml (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/pom.xml Wed Dec  5 09:13:40 2012
@@ -168,12 +168,6 @@
       <groupId>org.apache.openwebbeans</groupId>
       <artifactId>openwebbeans-jsf</artifactId>
       <version>${org.apache.openwebbeans.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.apache.openwebbeans</groupId>
-          <artifactId>openwebbeans-impl</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.myfaces.core</groupId>


Reply via email to