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/08/10 22:21:08 UTC

svn commit: r1617152 - in /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina: TomEEWebappClassLoader.java TomEEWebappLoader.java

Author: rmannibucau
Date: Sun Aug 10 20:21:07 2014
New Revision: 1617152

URL: http://svn.apache.org/r1617152
Log:
tomcat now checks classloading state, just using a boolean matching our delayed lifecycle, can be enhanced if needed later to match tomcat state

Modified:
    tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
    tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java?rev=1617152&r1=1617151&r2=1617152&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java Sun Aug 10 20:21:07 2014
@@ -63,6 +63,7 @@ public class TomEEWebappClassLoader exte
     private ClassLoaderConfigurer configurer;
     private final int hashCode;
     private Collection<File> additionalRepos;
+    private volatile boolean stopped = false;
 
     public TomEEWebappClassLoader() {
         hashCode = construct();
@@ -171,6 +172,13 @@ public class TomEEWebappClassLoader exte
         return !"org.apache.tomee.mojarra.TomEEInjectionProvider".equals(name) && URLClassLoaderFirst.shouldSkip(name);
     }
 
+    @Override
+    protected void checkStateForClassLoading(final String className) throws ClassNotFoundException {
+        if (stopped) { // keep same error than parent
+            super.checkStateForClassLoading(className);
+        }
+    }
+
     public void internalStop() throws LifecycleException {
         if (getState().isAvailable()) {
             // reset classloader because of tomcat classloaderlogmanager
@@ -182,6 +190,7 @@ public class TomEEWebappClassLoader exte
             } finally {
                 Thread.currentThread().setContextClassLoader(loader);
             }
+            stopped = true;
         }
     }
 
@@ -258,6 +267,8 @@ public class TomEEWebappClassLoader exte
         if (configurerTxt != null) {
             configurer = new CompositeClassLoaderConfigurer(configurer, configurerTxt);
         }
+
+        stopped = false;
     }
 
     public void addURL(final URL url) {

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java?rev=1617152&r1=1617151&r2=1617152&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java Sun Aug 10 20:21:07 2014
@@ -65,10 +65,7 @@ public class TomEEWebappLoader extends W
 
     @Override
     public boolean modified() {
-        if (SKIP_BACKGROUND_PROCESS) {
-            return false;
-        }
-        return super.modified();
+        return !SKIP_BACKGROUND_PROCESS && super.modified();
     }
 
     @Override