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

Reply via email to