WebExternalResourceStream.close() throws NPE
--------------------------------------------

                 Key: WICKET-790
                 URL: https://issues.apache.org/jira/browse/WICKET-790
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.3.0-beta2
            Reporter: Chuck Deal


I have written a ContextRelativeResourceReference (CRRR) that creates 
ContextRelativeResource objects.  I set a new CRRR on an Image object and when 
the page is rendering, I get the following stackTrace:

16:07:36,158 ERROR [default]:260 - Servlet.service() for servlet default threw 
exception
java.lang.NullPointerException
        at 
org.apache.wicket.util.resource.WebExternalResourceStream.close(WebExternalResourceStream.java:78)
        at 
org.apache.wicket.protocol.http.WicketFilter.getLastModified(WicketFilter.java:728)
        at 
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:122)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:495)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

Looking at WebExternalResourceStream.close(), it calls "in.close()", however, 
"in" is not initialized during the code execution path.  

Would it be acceptable to do this in the close() method?

        public void close() throws IOException
        {
                if (in != null) in.close();
        }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to