2013/11/6 <ma...@apache.org>: > Author: markt > Date: Tue Nov 5 23:06:33 2013 > New Revision: 1539180 > > URL: http://svn.apache.org/r1539180 > Log: > Review of r1539036 by Nick Williams. > > copyWithoutTransformers(), as defined in the interface > InstrumentableClassLoader, returns a ClassLoader. The start() method is not > defined in ClassLoader, it is specific to WebappClassLoader. Furthermore, > code calling copyWithoutTransformers() won't have access to WebappClassLoader > to call start() reflectively if a SecurityManager is enabled. > > So, the copyWithoutTransformers() method needs to call start() before it > returns the copied class loader. Otherwise, it will be useless to JPA > providers and the like. > > Modified: > tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java > > tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderWeaving.java > > Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java > URL: > http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=1539180&r1=1539179&r2=1539180&view=diff > ============================================================================== > --- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java > (original) > +++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Tue > Nov 5 23:06:33 2013 > @@ -700,6 +700,12 @@ public class WebappClassLoader extends U > result.permissionList.addAll(this.permissionList); > result.loaderPC.putAll(this.loaderPC); > > + try { > + result.start(); > + } catch (LifecycleException e) { > + throw new IllegalStateException(e); > + }
There is "result.started = this.started;" assignment a few lines above. Shouldn't the above call be wrapped into if(!started){ ... } ? LifecycleBase.start() logs an INFO message if start() is called repeatedly. WebappClassLoader implements start() by itself and does some work without checking for the "started" flag. There might be observable consequences of that. > return result; > } > >(...) > Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org