Many requests may share the same Filter instance, so having instance variables to store the state of a request is a bad idea. You should look at re-coding your Filter to remove any instance variables.
Andy -----Original Message----- From: Bradley Beddoes [mailto:[EMAIL PROTECTED] Sent: 28 October 2003 09:55 To: Tomcat Users List Subject: RE: Servlet.Service() NullPointer on Filter - Really need some he lp on this one... Hi Andy, I was considering that also however the req and res objects are specified as private members of the overall class that has been created (extends filter obviously) and i would have assumed that each request would instatiate a new object. Certainly willing to try them as local variables if you think that may help. cheers, Bradley > Where are your req and res variables defined? They should be > local to the doFilter() method or you could get concurrency > issues. > > Andy > > -----Original Message----- > From: Bradley Beddoes [mailto:[EMAIL PROTECTED] > Sent: 28 October 2003 07:50 > To: [EMAIL PROTECTED] > Subject: Servlet.Service() NullPointer on Filter - Really need > some help on this one... > > > Hi All, > I am hoping that someone is able to assist with some problems I > am currently having with a filter I have written. The filter is > designed to deal with authentication for users to check they have > a particular cookie set then place an object into the session for > further use. I have researched this error extensively online and > can't find any documentation on correcting it. > > The error presented below only occurs on around 12% of requests > (sometimes a few percent either side of this) according to my > profiler when the code is put under some load - I am wondering if > it may be caused by some form of concurrent request error in the > filters whereby the Servlet object is being reset or otherwise > nulled out. > > The codebase looks like: > public void doFilter( ServletRequest request, ServletResponse > response, FilterChain chain )throws IOException, ServletException > { > try > { > req = (HttpServletRequest)request; > res = (HttpServletResponse)response; > > ...... > > //Create Session object > HttpSession session = req.getSession( true ); > session.setAttribute( QutClientObject.NAME, > qutClient ); > sessionCreated = true; > > //set REMOTE_USER > > res.addHeader("REMOTE_USER",qutClient.getUserName()); > > // Filter chaining completed, move to next filter > in chain > chain.doFilter( request, response ); > > return; > } > } > > Error occurs on line: req.getSession( true ); > > The error from tomcat(both 4.1.24 and 4.1.27) is: > > 2003-10-28 17:35:35 StandardWrapperValve[jsp]: Servlet.service() > for servlet jsp threw exception > java.lang.NullPointerException > at > org.apache.coyote.tomcat4.CoyoteRequestFacade.getSession(CoyoteRe > questFacade .java:365) > at > au.edu.qut.jauth.client.JAuthFilter.doFilter(JAuthFilter.java:197 > ) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > Application FilterChain.java:213) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicat > ionFilterCh ain.java:193) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrap > perValve.ja va:256) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo > ntext.invok eNext(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(StandardCont > extValve.ja va:191) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo > ntext.invok eNext(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.j > ava:2416) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostVal > ve.java:180 ) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo > ntext.invok eNext(StandardPipeline.java:643) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispa > tcherValve. java:171) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo > ntext.invok eNext(StandardPipeline.java:641) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportVal > ve.java:172 ) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo > ntext.invok eNext(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(StandardEngin > eValve.java :174) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo > ntext.invok eNext(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.jav > a:223) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor. > java:601) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.p > rocessConne ction(Http11Protocol.java:392) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint. > java:565) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(Thr > eadPool.jav a:619) > at java.lang.Thread.run(Thread.java:534) > > > Any help would be very much appreciated I am almost out of ideas > for this one... > > cheers, > Bradley. > > > > > ----------------------------------------------------------------- > ---- To unsubscribe, e-mail: >[EMAIL PROTECTED] For additional > commands, e-mail: [EMAIL PROTECTED] > > ----------------------------------------------------------------- > ---- To unsubscribe, e-mail: >[EMAIL PROTECTED] For additional > commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]