Harry Chan created WW-4263:
------------------------------

             Summary: DefaultHttpHeaders.compareIfModifiedSince() throws 
ParseException when the locale of the web browser is different to the server
                 Key: WW-4263
                 URL: https://issues.apache.org/jira/browse/WW-4263
             Project: Struts 2
          Issue Type: Bug
          Components: Plugin - REST
    Affects Versions: 2.3.15.3
            Reporter: Harry Chan


I am using the RESTFul  plugin and this exception is thrown when I visit the 
page enabled *Caching*.

When I trigger an action from my web browser, it pass the *If-Modified-Since* 
attribute to server side and the locale of it date format is in *en* - *Wed, 18 
Dec 2013 16:00:00 GMT*. 

Then, in the server side, the *DefaultHttpHeaders* uses the method 
*compareIfModifiedSince()* to check if it should return the cached data. 
However, I found that the *DefaultHttpHeaders.compareIfModifiedSince()* would 
use the *default locale* of the server for parsing the *If-Modified-Since* 
input which causes ParseException as the locale of the server is NOT same as 
the web browser I used.

{code}
17:24:20.915 [qtp5416428-21] DEBUG o.a.struts2.rest.DefaultHttpHeaders.debug() 
[8139ea3e-f463-42fa-9642-ecc2b44b7a21][] - Got error parsing If-Modified-Since 
header value [Wed, 18 Dec 2013 16:00:00 GMT] as [EEE, dd MMM yyyy HH:mm:ss zzz]!
java.text.ParseException: Unparseable date: "Wed, 18 Dec 2013 16:00:00 GMT"
        at java.text.DateFormat.parse(DateFormat.java:357) ~[na:1.7.0_09]
        at 
org.apache.struts2.rest.DefaultHttpHeaders.compareIfModifiedSince(DefaultHttpHeaders.java:165)
 [struts2-rest-plugin-2.3.15.3.jar:2.3.15.3]
        at 
org.apache.struts2.rest.DefaultHttpHeaders.apply(DefaultHttpHeaders.java:149) 
[struts2-rest-plugin-2.3.15.3.jar:2.3.15.3]
        at 
org.apache.struts2.rest.RestActionInvocation.processResult(RestActionInvocation.java:190)
 [struts2-rest-plugin-2.3.15.3.jar:2.3.15.3]
        at 
org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:145)
 [struts2-rest-plugin-2.3.15.3.jar:2.3.15.3]
        at 
com.opensymphony.xwork2.DefaultActionProxy.execute(DefaultActionProxy.java:147) 
[xwork-core-2.3.15.3.jar:2.3.15.3]
        at 
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563) 
[struts2-core-2.3.15.3.jar:2.3.15.3]
...
{code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to