Hi all, we are using tomcat 4.1.27 as a servlet container (no jsp's). when issuing several concurrent requests to our servlet we receive a NullPointerException from CoyoteRequestFacade (see stacktrace below). This is because for some reason the CoyoteRequest instance held by the facade gets nulled when several requests are processed by the server. the strange thing is however that the facade itself is still a valid reference. its just the decorated request instance that disappears. can anybody on the list give me any pointers on where to look for a solution?
how is the requestFacade supposed to behave with regard to a servlet receiving concurrent requests? is it a valid implementation strategy to add attributes to a HttpServletRequest instance in a filter, then pass the request to the servlet and afterwards process the request (and its attributes) again in the filter after the servlet has finished processing the request (after calling getChain().doFilter())? Any help appreciated. Thanks, Markus p.s.: i hope it is ok to post this question to the dev mailing list. if i chose the wrong list please drop me a line... at org.apache.coyote.tomcat4.CoyoteRequestFacade.setAttribute (CoyoteRequestFacade.java: 234) at com.generali.vp.tomcat.AbstractAdapterServlet.sendOutputToBrowser (AbstractAdapterServlet.java: 222) at com.generali.vp.tomcat.evpbasis.AbstractEVPServlet.doPost (AbstractEVPServlet.java: 154) at javax.servlet.http.HttpServlet.service (HttpServlet.java: 760) at javax.servlet.http.HttpServlet.service (HttpServlet.java: 853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 247) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.tomcat.evpbasis.dbvs.filters.UserFilter.doFiltering (UserFilter.java: 69) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 92) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at com.generali.vp.tomcat.filters.CommitFilter.doFiltering (CommitFilter.java: 53) at com.generali.vp.filters.AbstractFilter.doFilter (AbstractFilter.java: 92) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 213) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 193) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java: 256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext (StandardPipeline.java: 643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java: 480) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java: 995) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java: 191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext (StandardPipeline.java: 643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java: 480) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java: 995) at org.apache.catalina.core.StandardContext.invoke (StandardContext.java: 2416) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java: 180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext (StandardPipeline.java: 643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke (ErrorDispatcherValve.java: 171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext (StandardPipeline.java: 641) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java: 172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext (StandardPipeline.java: 641) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java: 480) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java: 995) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java: 174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext (StandardPipeline.java: 643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java: 480) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java: 995) at org.apache.coyote.tomcat4.CoyoteAdapter.service (CoyoteAdapter.java: 223) at org.apache.jk.server.JkCoyoteHandler.invoke (JkCoyoteHandler.java: 263) at org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java: 360) at org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java: 604) at org.apache.jk.common.ChannelSocket.processConnection (ChannelSocket.java: 562) at org.apache.jk.common.SocketConnection.runIt (ChannelSocket.java: 679) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java: 619) at java.lang.Thread.run (Thread.java: 534)