[jboss-jira] [JBoss JIRA] Created: (JBAS-4060) NPE in StandardSession.endAccess()
Brian Stansberry (JIRA)
jira-events at jboss.com
Sun Feb 4 17:51:19 EST 2007
NPE in StandardSession.endAccess()
----------------------------------
Key: JBAS-4060
URL: http://jira.jboss.com/jira/browse/JBAS-4060
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Web (Tomcat) service
Reporter: Brian Stansberry
Assigned To: Remy Maucherat
Fix For: JBossAS-4.2.0.CR1
In the jbossweb embedded in Branch_4_2, there is a race between a webapp undeployment and the cleanup of the last Request(s) the app handled that can lead to an NPE in StandardSession. Following server side logging from org.jboss.test.classloader.leak.test.ClassloaderLeakUnitTestCase shows the issue:
2007-02-04 15:15:11,283 INFO [WEBAPP] WEBAPP is here
2007-02-04 15:15:11,673 DEBUG [org.jboss.deployment.MainDeployer] Undeploying file:/C:/dev/jboss/jboss-4.2/testsuite/output/lib/classloader-leak-in-war.war, isShutdown=false
2007-02-04 15:15:11,673 DEBUG [org.jboss.system.ServiceController] stopping service: jboss.web.deployment:war=classloader-leak-in-war.war,id=1522768662
2007-02-04 15:15:11,673 DEBUG [org.jboss.system.ServiceController] stopping dependent services for: jboss.web.deployment:war=classloader-leak-in-war.war,id=1522768662 dependent services are: []
2007-02-04 15:15:11,673 DEBUG [org.jboss.web.WebModule] Stopping jboss.web.deployment:war=classloader-leak-in-war.war,id=1522768662
2007-02-04 15:15:11,673 INFO [org.jboss.web.tomcat.service.TomcatDeployer] undeploy, ctxPath=/classloader-leak, warUrl=.../tmp/deploy/tmp12161classloader-leak-in-war-exp.war/
2007-02-04 15:15:11,689 ERROR [org.apache.coyote.http11.Http11Processor] Error processing request
java.lang.NullPointerException
at org.apache.catalina.session.StandardSession.endAccess(StandardSession.java:638)
at org.apache.catalina.connector.Request.recycle(Request.java:419)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:239)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:624)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:595)
The test
1) executes a web request against a JSP (JSP does the first INFO logging above)
2) executes an RMIAdaptor request telling the AS to undeploy the webapp
Apparently, the recycle processing from the web request is still ongoing as the webapp is being undeployed. Looks like the undeployment's StandardManager.stop() --> StandardSession.recycle() is nulling out the StandardSession.accessCount field. This leads to the NPE in Request.recycle() --> StandardSession.endAccess().
The test class executes several different tests like this, deploying different wars/ears. The wars all use the same context-root. It seems that after this failure happens on one test, the next test deploys its war OK, but the first web request gets a 503. So it seems the NPE has some lasting effect on the server. There is no server-side logging explaining the 503.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list