--- a/jdk/make/tools/CharsetMapping/Big5.c2b Wed Apr 07 17:20:11 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-#Add the following 5 characters which are duplicated
-#or have conflicts with other characters.
-0xA1C4 0xFF3F #REGWARN Fallback 0xA1C4 SPACING UNDERSCORE
-0xA2AC 0x2571 #REGWARN Fallback 0xA2AC LT DIAG UP RIGHT TO LOW LEFT
-0xA2AD 0x2572 #REGWARN Fallback 0xA2AD LT DIAG UP LEFT TO LOW RIGHT
-0xA451 0x5341 #REGWARN Fallback 0xA451 HANGZHOU NUMERAL TEN
-0xA4CA 0x5345 #REGWARN Fallback 0xA4CA HANGZHOU NUMERAL THIRTY
-#
--- a/jdk/make/tools/CharsetMapping/Big5.map Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/make/tools/CharsetMapping/Big5.map Mon Apr 12 15:53:20 2010 -0700
@@ -13830,8 +13830,21 @@
0xF9D4 0x9F49 # <CJK>
0xF9D5 0x9F98 # <CJK>
#
+# from Big5.b2c-irreversible
+#
0xA15A 0xFF3F #SPACING UNDERSCORE
0xA1FE 0x2571 #LT DIAG UP RIGHT TO LOW LEFT
0xA240 0x2572 #LT DIAG UP LEFT TO LOW RIGHTG
0xA2CC 0x5341 #HANGHZOU NUMERAL TEN
0xA2CE 0x5345 #HANGZHOU NUMERAL THIRTY
+#
+# Add the following 5 characters from Big5.c2b-irreversible
+# It appears these 5 should be here to be the round-trip
+# for these 5 characters. Above 5 are the b->c only nrt.
+#
+0xA1C4 0xFF3F
+0xA2AC 0x2571
+0xA2AD 0x2572
+0xA451 0x5341
+0xA4CA 0x5345
+#
--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java Mon Apr 12 15:53:20 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2010 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
@@ -29,6 +29,7 @@
import java.io.Console;
import java.io.File;
import java.io.FileDescriptor;
+import java.security.ProtectionDomain;
/** A repository of "shared secrets", which are a mechanism for
calling implementation-private methods in another package without
@@ -121,6 +122,8 @@
public static JavaSecurityProtectionDomainAccess
getJavaSecurityProtectionDomainAccess() {
+ if (javaSecurityProtectionDomainAccess == null)
+ unsafe.ensureClassInitialized(ProtectionDomain.class);
return javaSecurityProtectionDomainAccess;
}
}
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Mon Apr 12 15:53:20 2010 -0700
@@ -624,6 +624,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -670,11 +675,14 @@
out.print("Testing\r\n");
out.flush();
} finally {
- // close the socket
- Thread.sleep(2000);
- System.out.println("Server closing socket");
- sslSocket.close();
- serverReady = false;
+ // close the socket
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
}
}
@@ -704,12 +712,17 @@
URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString());
- http = (HttpsURLConnection)url.openConnection();
+ try {
+ http = (HttpsURLConnection)url.openConnection();
- int respCode = http.getResponseCode();
- System.out.println("respCode = "+respCode);
-
- http.disconnect();
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+ } finally {
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
+ }
}
/*
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java Mon Apr 12 15:53:20 2010 -0700
@@ -61,6 +61,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -98,25 +103,34 @@
serverReady = true;
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
- InputStream sslIS = sslSocket.getInputStream();
- OutputStream sslOS = sslSocket.getOutputStream();
- BufferedReader br = new BufferedReader(new InputStreamReader(sslIS));
- PrintStream ps = new PrintStream(sslOS);
- // process HTTP POST request from client
- System.out.println("status line: "+br.readLine());
- String msg = null;
- while ((msg = br.readLine()) != null && msg.length() > 0);
+ try {
+ InputStream sslIS = sslSocket.getInputStream();
+ OutputStream sslOS = sslSocket.getOutputStream();
+ BufferedReader br =
+ new BufferedReader(new InputStreamReader(sslIS));
+ PrintStream ps = new PrintStream(sslOS);
+
+ // process HTTP POST request from client
+ System.out.println("status line: "+br.readLine());
+ String msg = null;
+ while ((msg = br.readLine()) != null && msg.length() > 0);
- msg = br.readLine();
- if (msg.equals(postMsg)) {
- ps.println("HTTP/1.1 200 OK\n\n");
- } else {
- ps.println("HTTP/1.1 500 Not OK\n\n");
+ msg = br.readLine();
+ if (msg.equals(postMsg)) {
+ ps.println("HTTP/1.1 200 OK\n\n");
+ } else {
+ ps.println("HTTP/1.1 500 Not OK\n\n");
+ }
+ ps.flush();
+
+ // close the socket
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+ } finally {
+ sslSocket.close();
+ sslServerSocket.close();
}
- ps.flush();
- Thread.sleep(2000);
- sslSocket.close();
- sslServerSocket.close();
}
/*
@@ -144,12 +158,17 @@
http.setRequestMethod("POST");
PrintStream ps = new PrintStream(http.getOutputStream());
- ps.println(postMsg);
- ps.flush();
- if (http.getResponseCode() != 200) {
- throw new RuntimeException("test Failed");
+ try {
+ ps.println(postMsg);
+ ps.flush();
+ if (http.getResponseCode() != 200) {
+ throw new RuntimeException("test Failed");
+ }
+ } finally {
+ ps.close();
+ http.disconnect();
+ closeReady = true;
}
- ps.close();
}
static class NameVerifier implements HostnameVerifier {
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Mon Apr 12 15:53:20 2010 -0700
@@ -624,6 +624,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -670,11 +675,14 @@
out.print("Testing\r\n");
out.flush();
} finally {
- // close the socket
- Thread.sleep(2000);
- System.out.println("Server closing socket");
- sslSocket.close();
- serverReady = false;
+ // close the socket
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
}
}
@@ -716,7 +724,10 @@
// no subject alternative names matching IP address 127.0.0.1 found
// that's the expected exception, ignore it.
} finally {
- http.disconnect();
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
}
}
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Mon Apr 12 15:53:20 2010 -0700
@@ -625,6 +625,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -672,7 +677,10 @@
out.flush();
} finally {
// close the socket
- Thread.sleep(2000);
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
System.out.println("Server closing socket");
sslSocket.close();
serverReady = false;
@@ -705,12 +713,17 @@
URL url = new URL("https://127.0.0.1:" + serverPort+"/");
System.out.println("url is "+url.toString());
- http = (HttpsURLConnection)url.openConnection();
+ try {
+ http = (HttpsURLConnection)url.openConnection();
- int respCode = http.getResponseCode();
- System.out.println("respCode = "+respCode);
-
- http.disconnect();
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+ } finally {
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
+ }
}
/*
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Mon Apr 12 15:53:20 2010 -0700
@@ -625,6 +625,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -672,7 +677,10 @@
out.flush();
} finally {
// close the socket
- Thread.sleep(2000);
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
System.out.println("Server closing socket");
sslSocket.close();
serverReady = false;
@@ -705,12 +713,17 @@
URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString());
- http = (HttpsURLConnection)url.openConnection();
+ try {
+ http = (HttpsURLConnection)url.openConnection();
- int respCode = http.getResponseCode();
- System.out.println("respCode = "+respCode);
-
- http.disconnect();
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+ } finally {
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
+ }
}
/*
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Mon Apr 12 15:53:20 2010 -0700
@@ -624,6 +624,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -671,7 +676,10 @@
out.flush();
} finally {
// close the socket
- Thread.sleep(2000);
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
System.out.println("Server closing socket");
sslSocket.close();
serverReady = false;
@@ -704,12 +712,17 @@
URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString());
- http = (HttpsURLConnection)url.openConnection();
+ try {
+ http = (HttpsURLConnection)url.openConnection();
- int respCode = http.getResponseCode();
- System.out.println("respCode = "+respCode);
-
- http.disconnect();
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+ } finally {
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
+ }
}
/*
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Wed Apr 07 17:20:11 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Mon Apr 12 15:53:20 2010 -0700
@@ -61,6 +61,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -98,24 +103,33 @@
serverReady = true;
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
- InputStream sslIS = sslSocket.getInputStream();
- OutputStream sslOS = sslSocket.getOutputStream();
- BufferedReader br = new BufferedReader(new InputStreamReader(sslIS));
- PrintStream ps = new PrintStream(sslOS);
- // process HTTP POST request from client
- System.out.println("status line: "+br.readLine());
+ try {
+ InputStream sslIS = sslSocket.getInputStream();
+ OutputStream sslOS = sslSocket.getOutputStream();
+ BufferedReader br =
+ new BufferedReader(new InputStreamReader(sslIS));
+ PrintStream ps = new PrintStream(sslOS);
+
+ // process HTTP POST request from client
+ System.out.println("status line: "+br.readLine());
- ps.println("HTTP/1.1 307 Redirect");
- ps.println("Location: https://localhost:"+serverPort+"/index.html\n\n");
- ps.flush();
- sslSocket = (SSLSocket) sslServerSocket.accept();
- sslOS = sslSocket.getOutputStream();
- ps = new PrintStream(sslOS);
- ps.println("HTTP/1.1 200 Redirect succeeded\n\n");
- ps.flush();
- Thread.sleep(2000);
- sslSocket.close();
- sslServerSocket.close();
+ ps.println("HTTP/1.1 307 Redirect");
+ ps.println("Location: https://localhost:" + serverPort +
+ "/index.html\n\n");
+ ps.flush();
+ sslSocket = (SSLSocket) sslServerSocket.accept();
+ sslOS = sslSocket.getOutputStream();
+ ps = new PrintStream(sslOS);
+ ps.println("HTTP/1.1 200 Redirect succeeded\n\n");
+ ps.flush();
+ } finally {
+ // close the socket
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+ sslSocket.close();
+ sslServerSocket.close();
+ }
}
/*
@@ -139,10 +153,14 @@
HttpsURLConnection.setDefaultHostnameVerifier(
new NameVerifier());
HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
-
- System.out.println("response header: "+http.getHeaderField(0));
- if (http.getResponseCode() != 200) {
- throw new RuntimeException("test Failed");
+ try {
+ System.out.println("response header: "+http.getHeaderField(0));
+ if (http.getResponseCode() != 200) {
+ throw new RuntimeException("test Failed");
+ }
+ } finally {
+ http.disconnect();
+ closeReady = true;
}
}