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();