You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (JIRA)" <ji...@apache.org> on 2011/04/08 13:21:05 UTC

[jira] [Commented] (HTTPCLIENT-1077) CookiePolicy.RFC_2109: Unable to parse expires attribute (Thu, 01-Dec-94 16:00:00 GMT)

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-1077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13017402#comment-13017402 ] 

Oleg Kalnichevski commented on HTTPCLIENT-1077:
-----------------------------------------------

That's bizarre. As far as I can tell US locale is explicitly set when creating instances of SimpleDateFormat [1]. Am I still missing something?

Oleg

[1] http://hc.apache.org/httpcomponents-client-ga/httpclient/xref/org/apache/http/impl/cookie/DateUtils.html#249 

> CookiePolicy.RFC_2109: Unable to parse expires attribute (Thu, 01-Dec-94 16:00:00 GMT)
> --------------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1077
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1077
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpCookie
>    Affects Versions: 4.1.1
>         Environment: JVM where de default Locale ist not Locale.US.
>            Reporter: Andreas Fagschlunger
>            Priority: Minor
>              Labels: coocki
>
> In our Application we're facing problems using HttpClient 4.x (didn't have that problem with HttpClient 3.1). The HttpClient has problems parsing the Cookie's Expires-Attribute:
> 2011-04-08 10:14:21,647 [btpool0-0] WARN  org.apache.http.client.protocol.ResponseProcessCookies - Invalid cookie header: "Set-Cookie: dfName=""; Expires=Thu, 01-Dec-94 16:00:00 GMT; Path=/appl/ebp". Unable to parse expires attribute: Thu
> We are using Cookie-Policy RFC2109:
>         httpClient = new DefaultHttpClient(connectionManager);
>         httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109);
> The problems seems to be the JVM's default Locale, which is in our case de_AT and not en_US. See following Example:
> [Java]
>         System.out.println("Locale=" + Locale.getDefault());
>         String[] datePatterns = new String[] {
>             DateUtils.PATTERN_ASCTIME,
>             DateUtils.PATTERN_RFC1036,
>             DateUtils.PATTERN_RFC1123 };
>         for (String pattern : datePatterns) {
>             try {
>                 SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
>                 dateFormat.parse("Thu, 01-Dec-94 16:00:00 GMT");
>             } catch (ParseException e) {
>                 System.out.println("Pattern '" + pattern + "' failed.");
>             }
>         }
> [/Java]
> The output for me is following:
> Locale=de_AT
> Pattern 'EEE MMM d HH:mm:ss yyyy' failed.
> Pattern 'EEEE, dd-MMM-yy HH:mm:ss zzz' failed.
> Pattern 'EEE, dd MMM yyyy HH:mm:ss zzz' failed.
> Setting the default Locale to US (Locale.setDefault(Locale.US)), the output changes:
> Locale=en_US
> Pattern 'EEE MMM d HH:mm:ss yyyy' failed.
> Pattern 'EEE, dd MMM yyyy HH:mm:ss zzz' failed.
> So the Date (Thu, 01-Dec-94 16:00:00 GMT) and the pattern (DateUtils.PATTERN_RFC1036: EEEE, dd-MMM-yy HH:mm:ss zzz) seem to be valid, just the Locale is not explicitly set for the SimpleDateFormat:
> http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#SimpleDateFormat%28java.lang.String,%20java.util.Locale%29
> I hope I didn't waste your time and this is realy a bug.
> Best regards,
> Billie

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org