You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2005/12/16 06:51:05 UTC

DO NOT REPLY [Bug 26372] - java.lang.ThreadDeath when trying to reload an application

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=26372>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=26372





------- Additional Comments From boni@yasutech.com  2005-12-16 06:51 -------
(In reply to comment #38)
Hi, 

We are getting this issue, any pointers to fix this would greatly help us. I 
don' see any practical solution being offered in any of the responses below. 
Any help would be greatly appreciated. There is no LOG4J in the stack trace!!!

utility.UpdateHelper is our application code.


thanks in advance
boni
Tomcat Version: 5.0.28 (using AXIS 1.1), windows platform

The stack trace is :
java.lang.ThreadDeath
	at org.apache.catalina.loader.WebappClassLoader.loadClass
(WebappClassLoader.java:1229)
	at org.apache.catalina.loader.WebappClassLoader.loadClass
(WebappClassLoader.java:1189)
	at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:88)
	at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:195)
	at javax.xml.parsers.DocumentBuilderFactory.newInstance
(DocumentBuilderFactory.java:98)
	at utility.UpdateHelper.TextValueOfElement(UpdateHelper.java:200)
	at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.yasutech.qrules.network.k.if(ExpressionEvaluator.java:1018)
	at com.yasutech.qrules.network.k.a(ExpressionEvaluator.java:446)
	at com.yasutech.qrules.network.k.if(ExpressionEvaluator.java:88)
	at com.yasutech.qrules.network.Activation.evaluateExpression
(Activation.java:964)
	at com.yasutech.qrules.network.Activation.changeVariable
(Activation.java:640)
	at com.yasutech.qrules.network.Activation.performAssignAction
(Activation.java:626)
	at com.yasutech.qrules.network.Activation.decideCourseOfAction
(Activation.java:204)
	at com.yasutech.qrules.network.Activation.fire(Activation.java:160)
	at com.yasutech.qrules.network.r.try(Agenda.java:94)
	at com.yasutech.qrules.network.Rete.run(Rete.java:1330)
	at com.yasutech.qrules.rete.ReteAdapter.fireRules(ReteAdapter.java:112)
	at com.yasutech.qrules.rete.ReteRuleEngineAPIHelper.evaluateFacts
(ReteRuleEngineAPIHelper.java:620)
	at com.yasutech.qrules.rete.ReteRuleEngineAPIHelper.executeRuleset
(ReteRuleEngineAPIHelper.java:333)
	at com.yasutech.qrules.rete.ReteEngine.invokeRuleset
(ReteEngine.java:964)
	at webservice.example1.server.MyRuleEngineService.invokeRuleset
(MyRuleEngineService.java:366)
	at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.axis.providers.java.RPCProvider.invokeMethod
(RPCProvider.java:402)
	at org.apache.axis.providers.java.RPCProvider.processMessage
(RPCProvider.java:309)
	at org.apache.axis.providers.java.JavaProvider.invoke
(JavaProvider.java:333)
	at org.apache.axis.strategies.InvocationStrategy.visit
(InvocationStrategy.java:71)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
	at org.apache.axis.handlers.soap.SOAPService.invoke
(SOAPService.java:481)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
	at org.apache.axis.transport.http.AxisServlet.doPost
(AxisServlet.java:854)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at org.apache.axis.transport.http.AxisServletBase.service
(AxisServletBase.java:339)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service
(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:799)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnectio
n(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:595)
> (In reply to comment #37)
> > i think i know how to reproduce and prevent this error.  assistance from the
> > tomcat developers could enhance the workaround.
> I would disagree, your suggestion simply masks your own problem.
> Logging isn't the only culprit in the world, and your solution only touches 
(and
> loads) those segments of the logging infrastructure it uses at that time for
> that message.
> What TC could do to help the developer is improve that ThreadDeath message and
> help the developer identify the exact thread of execution (by name and thread
> id) and the class it was trying to load at the time.  This feels like a step 
in
> the right direction it helps the developers stamp out their bugs and does not
> encrouch into an ugly half-baked solution the maintainers rightfully want to
> keep out.
> I'm still toying with the idea of keeping generation(s) of WebAppClassLoader's
> around, this idea does have merit for me especially when you keep generations 
of
> all modifications to the web-app around (between container restarts) there are
> other good side effects too like hot JAR replace on Win32 where JAR locking
> might be an issue.  But this sort of development process has to be driven from
> an IDE.



-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org