6791927: Wrong Locale in HttpCookie::expiryDate2DeltaSeconds
authorjccollet
Mon, 02 Feb 2009 16:50:54 +0100
changeset 1945 95b9d549a3b4
parent 1943 d3de53b2070d
child 1946 2e6e15ca4d56
6791927: Wrong Locale in HttpCookie::expiryDate2DeltaSeconds Summary: Force Locale.US when parsing the cookie expiration date. Reviewed-by: chegar
jdk/src/share/classes/java/net/HttpCookie.java
jdk/test/java/net/CookieHandler/B6791927.java
--- a/jdk/src/share/classes/java/net/HttpCookie.java	Fri Jan 30 23:27:20 2009 -0800
+++ b/jdk/src/share/classes/java/net/HttpCookie.java	Mon Feb 02 16:50:54 2009 +0100
@@ -33,6 +33,7 @@
 import java.util.Date;
 
 import java.lang.NullPointerException;  // for javadoc
+import java.util.Locale;
 
 /**
  * An HttpCookie object represents an http cookie, which carries state
@@ -1096,7 +1097,7 @@
     static {
             cDateFormats = new SimpleDateFormat[COOKIE_DATE_FORMATS.length];
             for (int i = 0; i < COOKIE_DATE_FORMATS.length; i++) {
-                cDateFormats[i] = new SimpleDateFormat(COOKIE_DATE_FORMATS[i]);
+                cDateFormats[i] = new SimpleDateFormat(COOKIE_DATE_FORMATS[i], Locale.US);
                 cDateFormats[i].setTimeZone(TimeZone.getTimeZone("GMT"));
             }
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/CookieHandler/B6791927.java	Mon Feb 02 16:50:54 2009 +0100
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6791927
+ * @summary Wrong Locale in HttpCookie::expiryDate2DeltaSeconds
+ */
+
+import java.net.*;
+import java.util.List;
+import java.util.Locale;
+
+public class B6791927 {
+    public static final void main( String[] aaParamters ) throws Exception{
+        // Forces a non US locale
+        Locale.setDefault(Locale.FRANCE);
+        List<HttpCookie> cookies = HttpCookie.parse("set-cookie: CUSTOMER=WILE_E_COYOTE; expires=Wednesday, 09-Nov-2019 23:12:40 GMT");
+        if (cookies == null || cookies.isEmpty()) {
+            throw new RuntimeException("No cookie found");
+        }
+        for (HttpCookie c : cookies) {
+            if (c.getMaxAge() == 0) {
+                throw new RuntimeException("Expiration date shouldn't be 0");
+            }
+        }
+    }
+}