The team I work with has encountered an apparent problem with Struts when the servlet is reloaded by the container. We are using Weblogic 9.1, but the problem appear to happen on other versions, and possibly other containers. The spec does not appear to be clear regarding the ServletContext behavior across servlet instances, and in the case of Weblogic 9.1, it appears to fully preserve the ServletContext. The problem we are having is that the RequestProcessor instances stored in the ServletContext are destroyed when the ActionServlet is destroyed, but they are not removed from the ServletContext. As a result, when a new servlet is created with the same context, it finds the RequestProcessors already existing, but they have a null reference to the servlet (since their respective destroy method was called). As a result any attempt to get to the Servlet resources, such as the ServletContext, results in a NullPointerException in the RequestProcessor.

Even the latest version appears to do this. Google searches on the problem reveal other users have had the problem, and even a patch/hack that resets the servlet variable in the RequestProcessor every time it is accessed. There is also an existing open issue () on JRun that may be the same problem.

A simple one line addition to the Servlet destroy code to remove the destroyed RequestProcessor from the ServletContext fixes the problem.

Is anyone familiar with this issue and can valid or correct my understanding? And If I am correct in my understanding, is this something I should submit the one line patch for? I've not had the opportunity to contribute to struts before, and little to any project as much as I'd like to.

Any comments, feedback, corrections, validations, etc, would be appreciated.


Thanks!

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to