Here is the JDK8 changeset, to close the loop on this one. Note, the
change is slightly different to the patch posted.
Changeset: 5c1f90dd0405
Author: chegar
Date: 2011-08-22 14:09 +0100
URL: http://hg.openjdk.java.net/jdk8/tl/jdk/rev/5c1f90dd0405
7023713: HttpCookie.domainMatches("hostname.local", "hostname") should
return true
Reviewed-by: chegar
Contributed-by: zho...@linux.vnet.ibm.com
! src/share/classes/java/net/HttpCookie.java
! test/java/net/CookieHandler/TestHttpCookie.java
-Chris.
On 22/08/2011 07:21, Sean Chou wrote:
Thank you very much!
2011/8/19 Chris Hegarty <chris.hega...@oracle.com
<mailto:chris.hega...@oracle.com>>
Hi Sean,
I submitted a JPRT job with you patch. If all builds and tests are
successful I'll push this change for you.
diff -r 46b53f80ab0a src/share/classes/java/net/__HttpCookie.java
--- a/src/share/classes/java/net/__HttpCookie.java Fri Aug 19
10:55:05 2011 +0100
+++ b/src/share/classes/java/net/__HttpCookie.java Fri Aug 19
15:16:36 2011 +0100
@@ -751,6 +751,11 @@ public final class HttpCookie implements
// if the host name contains no dot and the domain name is
.local
int firstDotInHost = host.indexOf('.');
if (firstDotInHost == -1 && isLocalDomain)
+ return true;
+
+ // if the host name contains no dot and the domain name is
"host.local"
+ if (firstDotInHost == -1 &&
+ domain.equalsIgnoreCase(host + ".local"))
return true;
int domainLength = domain.length();
diff -r 46b53f80ab0a test/java/net/CookieHandler/__TestHttpCookie.java
--- a/test/java/net/CookieHandler/__TestHttpCookie.java Fri Aug 19
10:55:05 2011 +0100
+++ b/test/java/net/CookieHandler/__TestHttpCookie.java Fri Aug 19
15:16:36 2011 +0100
@@ -362,12 +362,13 @@ public class TestHttpCookie {
eq(c1, c2, false);
header("Test domainMatches()");
- dm(".foo.com <http://foo.com>", "y.x.foo.com
<http://y.x.foo.com>", false);
- dm(".foo.com <http://foo.com>", "x.foo.com
<http://x.foo.com>", true);
- dm(".com", "whatever.com <http://whatever.com>", false);
- dm(".com.", "whatever.com <http://whatever.com>", false);
- dm(".ajax.com <http://ajax.com>", "ajax.com
<http://ajax.com>", true);
- dm(".local", "example.local", true);
+ dm(".foo.com <http://foo.com>", "y.x.foo.com
<http://y.x.foo.com>", false);
+ dm(".foo.com <http://foo.com>", "x.foo.com
<http://x.foo.com>", true);
+ dm(".com", "whatever.com <http://whatever.com>", false);
+ dm(".com.", "whatever.com <http://whatever.com>", false);
+ dm(".ajax.com <http://ajax.com>", "ajax.com
<http://ajax.com>", true);
+ dm(".local", "example.local", true);
+ dm("example.local", "example", true);
// bug 6277808
testCount++;
-Chris.
On 04/08/2011 08:09, Sean Chou wrote:
Hi all,
I checked with java8, this problem still exists; and I
checked the
patch, it is still working.
The bug was filed with id 7023713 for java7, and the patch is
here. So,
would anyone like to
take a look at it again? Thanks.
2011/2/22 Sean Chou <zho...@linux.vnet.ibm.com
<mailto:zho...@linux.vnet.ibm.com>
<mailto:zho...@linux.vnet.ibm.__com
<mailto:zho...@linux.vnet.ibm.com>>>
Hi,
I find that HttpCookie.domainMatches("__hostname.local",
"hostname") returns false, which may be a bug.
According to spec, the effective host name of "hostname" is
"hostname.local", which is string
exactly the same with the first parameter. Thus the method
should
return true for this invocation.
I attached the simple testcase here:
// Testcase
import java.net.HttpCookie;
public class DomainMatchTest{
public static void main(String args[]){
// "true" should be printed, but get "false".
System.out.println(HttpCookie.__domainMatches("hostname.local"__,
"hostname"));
}
}
// End of testcase
Any comments?
--
Best Regards,
Sean Chou
--
Best Regards,
Sean Chou
--
Best Regards,
Sean Chou