User: salborini
  Date: 00/11/02 11:33:28

  Modified:    tomcat/src/main/org/jboss/tomcat EmbeddedTomcatService.java
  Log:
  Workaround for bug in jdk12Interceptor (context classloader not reset after 
invocation)
  
  Revision  Changes    Path
  1.3       +8 -1      
contrib/tomcat/src/main/org/jboss/tomcat/EmbeddedTomcatService.java
  
  Index: EmbeddedTomcatService.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/contrib/tomcat/src/main/org/jboss/tomcat/EmbeddedTomcatService.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EmbeddedTomcatService.java        2000/11/02 18:02:45     1.2
  +++ EmbeddedTomcatService.java        2000/11/02 19:33:27     1.3
  @@ -49,7 +49,7 @@
    *   @see <related>
    *   @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
    *   @author <a href="mailto:[EMAIL PROTECTED]">Kevin Lewis</a>
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class EmbeddedTomcatService extends ServiceMBeanSupport
        implements EmbeddedTomcatServiceMBean, MBeanRegistration {
  @@ -98,6 +98,9 @@
                
                Logger.log("Testing if Tomcat is present....");
                
  +             // tomcat (jdk12Interceptor) seems sets the contextclassloader but 
doesn't restore the original one
  +             ClassLoader oldCcl = Thread.currentThread().getContextClassLoader();
  +      
                try {
                        // We need the tomcat home to set tomcat's working dir / ROOT 
context
                        // This is set by using "java -Dtomcat.home=$TOMCAT_HOME ..." 
in run.sh/bat
  @@ -144,6 +147,10 @@
                        embededTomcat.start();
                
                } finally {
  +                     
  +                     // restore the original value of the ccl.
  +                     Thread.currentThread().setContextClassLoader(oldCcl);
  +                     
                        // unset log for the main thread.
                        // tomcat's child threads have a copy of it anyway.
                        Log.unsetLog();
  
  
  

Reply via email to