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(CoyoteRequestFacade
.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(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.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(StandardContextValve.ja
va:191)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.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.java:2416)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.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(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.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.java:223)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:392)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.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]

Reply via email to