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 2014/03/25 12:26:31 UTC

svn commit: r1581293 - in /tomee/tomee/trunk: pom.xml tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java

Author: rmannibucau
Date: Tue Mar 25 11:26:31 2014
New Revision: 1581293

URL: http://svn.apache.org/r1581293
Log:
TOMEE-1104 using tomcat 7.0.53 to validate regression of 7.0.52 are fixed

Modified:
    tomee/tomee/trunk/pom.xml
    tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java

Modified: tomee/tomee/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/pom.xml?rev=1581293&r1=1581292&r2=1581293&view=diff
==============================================================================
--- tomee/tomee/trunk/pom.xml (original)
+++ tomee/tomee/trunk/pom.xml Tue Mar 25 11:26:31 2014
@@ -121,7 +121,7 @@
 
     <jaxb.version>2.2.6</jaxb.version>
 
-    <tomcat.version>7.0.52</tomcat.version>
+    <tomcat.version>7.0.53</tomcat.version>
 
     <!-- used mainly by jetty modules -->
     <cxf.version>2.6.13</cxf.version>
@@ -555,6 +555,17 @@
     <!--</repository>-->
     <!-- Apache snapshots -->
     <repository>
+      <id>tomcat-rc</id>
+      <name>Tomcat RC Repository</name>
+      <url>https://repository.apache.org/content/repositories/orgapachetomcat-1010/</url>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+    <repository>
       <id>apache-snapshots</id>
       <name>Apache Snapshots Repository</name>
       <url>http://repository.apache.org/content/groups/snapshots-group</url>

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java?rev=1581293&r1=1581292&r2=1581293&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java Tue Mar 25 11:26:31 2014
@@ -31,8 +31,6 @@ import org.apache.openejb.util.classload
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
@@ -52,35 +50,14 @@ public class LazyStopWebappClassLoader e
     private ClassLoaderConfigurer configurer = null;
     private final int hashCode;
 
-    // ugly but break the whole container in embedded mode at least, tomcat change had a lot of side effect
-    private void setj2seClassLoader(final ClassLoader loader) {
-        try {
-            final Field field = WebappClassLoader.class.getDeclaredField("j2seClassLoader");
-
-            if (!field.isAccessible()) {
-                field.setAccessible(true);
-            }
-
-            if (Modifier.isFinal(field.getModifiers())) {
-                final Field modifiersField = Field.class.getDeclaredField("modifiers");
-                modifiersField.setAccessible(true);
-                modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
-            }
-
-            field.set(this, loader);
-        } catch (final Exception e) {
-            LOGGER.warning("Can't set field j2seClassLoader");
-        }
-    }
-
     public LazyStopWebappClassLoader() {
-        setj2seClassLoader(getSystemClassLoader());
+        j2seClassLoader = getSystemClassLoader();
         hashCode = construct();
     }
 
     public LazyStopWebappClassLoader(final ClassLoader parent) {
         super(parent);
-        setj2seClassLoader(getSystemClassLoader());
+        j2seClassLoader = getSystemClassLoader();
         hashCode = construct();
     }
 
@@ -108,13 +85,13 @@ public class LazyStopWebappClassLoader e
             // don't load them from system classloader (breaks all in embedded mode and no sense in other cases)
             synchronized (this) {
                 final ClassLoader old = j2seClassLoader;
-                setj2seClassLoader(NoClassClassLoader.INSTANCE);
+                j2seClassLoader = NoClassClassLoader.INSTANCE;
                 final boolean delegate = getDelegate();
                 setDelegate(false);
                 try {
                     return super.loadClass(name);
                 } finally {
-                    setj2seClassLoader(old);
+                    j2seClassLoader = old;
                     setDelegate(delegate);
                 }
             }