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>