[
https://issues.apache.org/jira/browse/WICKET-4081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Igor Vaynberg updated WICKET-4081:
----------------------------------
Fix Version/s: 1.5.2
> WebRequest.getIfModifiedSinceHeader does not handle IllegalArgumentException
> ----------------------------------------------------------------------------
>
> Key: WICKET-4081
> URL: https://issues.apache.org/jira/browse/WICKET-4081
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.5.0
> Environment: Fedora 13x64 ; Tomcat 7.0.21
> Reporter: Sylvain Vieujot
> Assignee: Igor Vaynberg
> Fix For: 1.5.2
>
>
> Blackberry If-Modified-Since date header sometimes has Tomcat's
> HttpServletRequest.getDateHeader( "If-Modified-Since" ) sending an
> IllegalArgumentException which crashed Wicket with HTTPStatus -1.
> If the If-Modified-Since header can't be parsed, the best is to assume it is
> null instead of crashing.
> To allow this, you can change the following code in
> org.apache.wicket.request.http.WebRequest :
> public final Time getIfModifiedSinceHeader()
> {
> return getDateHeader("If-Modified-Since");
> }
> with :
> public final Time getIfModifiedSinceHeader()
> {
> try{
> return getDateHeader("If-Modified-Since");
> }catch(IllegalArgumentException iae){
> return null;
> }
> }
> My stack trace is :
> java.lang.IllegalArgumentException: Mo, 12 Sep 2011 20:22:18 GMT
> at
> org.apache.catalina.connector.Request.getDateHeader(Request.java:2025)
> at
> org.apache.catalina.connector.RequestFacade.getDateHeader(RequestFacade.java:681)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getDateHeader(ServletWebRequest.java:214)
> at
> org.apache.wicket.request.http.WebRequest.getIfModifiedSinceHeader(WebRequest.java:102)
> at
> org.apache.wicket.request.resource.AbstractResource$ResourceResponse.dataNeedsToBeWritten(AbstractResource.java:302)
> at
> org.apache.wicket.request.resource.PackageResource.newResourceResponse(PackageResource.java:237)
> at
> org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:477)
> at
> org.apache.wicket.request.handler.resource.ResourceRequestHandler.respond(ResourceRequestHandler.java:77)
> at
> org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler.respond(ResourceReferenceRequestHandler.java:92)
> at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:723)
> at
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:63)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:253)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162)
> at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:218)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> com.seanergie.filter.persistence.SessionsManagerFilter.doFilter(SessionsManagerFilter.java:44)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
> at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:636)
> Request Header :
> user-agent: BlackBerry9000/5.0.0.411 Profile/MIDP-2.1 Configuration/CLDC-1.1
> VendorID/130
> profile:
> http://www.blackberry.net/go/mobile/profiles/uaprof/9000_umts/5.0.0.rdf
> referer: http://www.windsofdubai.com/winds/forecasts
> if-modified-since: Mo, 12 Sep 2011 20:22:18 GMT
> host: www.windsofdubai.com
> cookie: __utmc=54148142; __utmb=54148142.3.10.1315926864;
> __utmz=54148142.1315920781.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
> __utma=54148142.648980198.1315920781.1315920781.1315926864.2
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira