Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.3.0-beta2
-
None
Description
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(); }