OpenJDK / amber / amber
changeset 10328:06c93c42bca0
7055363: jdk_security3 test target cleanup
Reviewed-by: alanb, xuelei
line wrap: on
line diff
--- a/jdk/test/Makefile Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/Makefile Fri Aug 12 12:26:31 2011 +0800 @@ -544,7 +544,7 @@ jdk_security3: $(call TestDirs, com/sun/security lib/security \ javax/security sun/security) $(call SharedLibraryPermissions,sun/security) - $(call RunOthervmBatch) + $(call RunSamevmBatch) # All security tests jdk_security: jdk_security1 jdk_security2 jdk_security3
--- a/jdk/test/ProblemList.txt Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/ProblemList.txt Fri Aug 12 12:26:31 2011 +0800 @@ -450,73 +450,20 @@ # jdk_security -# Filed 6986868 -sun/security/tools/jarsigner/crl.sh generic-all - -# Filed 6951285, not sure how often this fails, last was Linux 64bit Fedora 9 -sun/security/krb5/auto/MaxRetries.java generic-all - -# Filed 6950930, fails on windows 32bit c1 and windows 64bit -sun/security/krb5/auto/IgnoreChannelBinding.java windows-all - -# Filed 6950931, failing on all windows systems -sun/security/tools/jarsigner/crl.sh windows-all - -# Filed 6950929, only seemed to fail on solaris sparcv9 (-d64) -# Failed on Linux -server 32bit too, making generic -sun/security/krb5/auto/BadKdc4.java generic-all - # Failing on Solaris i586, 3/9/2010, not a -samevm issue (jdk_security3) sun/security/pkcs11/Secmod/AddPrivateKey.java solaris-i586 sun/security/pkcs11/ec/ReadCertificates.java solaris-i586 sun/security/pkcs11/ec/ReadPKCS12.java solaris-i586 sun/security/pkcs11/ec/TestCurves.java solaris-i586 sun/security/pkcs11/ec/TestECDSA.java solaris-i586 -sun/security/pkcs11/ec/TestECGenSpec.java solaris-i586 -sun/security/pkcs11/ec/TestKeyFactory.java solaris-i586 - -# Failing on Solaris X64 (-d64 -server) with: -# GSSException: Failure unspecified at GSS-API level -# (Mechanism level: Specified version of key is not available (44)) -sun/security/krb5/auto/BasicKrb5Test.java generic-all - -# Solaris X86 failures, readjar.jks: No such file or directory -sun/security/tools/keytool/readjar.sh generic-all - -# Fails with -ea -esa, but only on Solaris sparc? Suspect it is timing out -sun/security/tools/keytool/standard.sh generic-all - -# Fails on Solaris 10 X64, address already in use -sun/security/krb5/auto/HttpNegotiateServer.java generic-all - -# Fails on almost all platforms -# java.lang.UnsupportedClassVersionError: SerialTest : -# Unsupported major.minor version 51.0 -# at java.lang.ClassLoader.defineClass1(Native Method) -sun/security/util/Oid/S11N.sh generic-all +#sun/security/pkcs11/ec/TestECGenSpec.java solaris-i586 +#sun/security/pkcs11/ec/TestKeyFactory.java solaris-i586 +sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java solaris-i586 -# Fails on Fedora 9 32bit -# GSSException: Failure unspecified at GSS-API level (Mechanism level: -# Invalid argument (400) - Cannot find key of appropriate type to decrypt -# AP REP - DES CBC mode with MD5) -# at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:778) -sun/security/krb5/auto/NonMutualSpnego.java generic-all - -# Fails on Solaris 10 sparc, GSSException: Failure unspecified at GSS-API level -# Also fails on Windows 2000 similar way -sun/security/krb5/auto/ok-as-delegate.sh generic-all +# Directly references PKCS11 class +sun/security/pkcs11/Provider/Absolute.java windows-x64 -# Fails on Windows 2000, GSSException: Failure unspecified at GSS-API level -# (Mechanism level: Request is a replay (34)) -sun/security/krb5/auto/ok-as-delegate-xrealm.sh generic-all - -# Fails on Windows 2000, ExceptionInInitializerError -sun/security/mscapi/AccessKeyStore.sh generic-all - -# Fails on Solaris 10, KrbException: Additional pre-authentication required (25) -sun/security/krb5/auto/basic.sh generic-all - -# Fails on Fedora 9 64bit, PKCS11Exception: CKR_DEVICE_ERROR +# Fails on Fedora 9/Ubuntu 10.04 64bit, PKCS11Exception: CKR_DEVICE_ERROR sun/security/pkcs11/KeyAgreement/TestDH.java generic-all # Run too slow on Solaris 10 sparc @@ -525,18 +472,10 @@ sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java solaris-sparc sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java solaris-sparc sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh solaris-sparc -sun/security/tools/keytool/AltProviderPath.sh solaris-sparc # Solaris 10 sparc, passed/failed confusion? java.security.ProviderException: update() failed sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java generic-all -# Seem really slow on Solaris sparc, being excluded just for timing reasons -sun/security/tools/jarsigner/AlgOptions.sh solaris-sparc -sun/security/tools/jarsigner/nameclash.sh solaris-sparc -sun/security/krb5/auto/basic.sh solaris-sparc -sun/security/provider/PolicyFile/getinstance/getinstance.sh solaris-sparc -sun/security/tools/jarsigner/samename.sh solaris-sparc - # Othervm, sparc, NoRouteToHostException: Cannot assign requested address sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java generic-all @@ -544,49 +483,13 @@ # Solaris sparc and sparcv9 -server, timeout sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java generic-all -# Failed on solaris 10 sparc, othervm mode, "js.jks: No such file or directory" -# Also, cannot verify signature on solaris i586 -server -sun/security/tools/jarsigner/concise_jarsigner.sh generic-all - # Various failures on Linux Fedora 9 X64, othervm mode -lib/security/cacerts/VerifyCACerts.java generic-all sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/TestAllSuites.java generic-all sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java generic-all -sun/security/tools/jarsigner/oldsig.sh generic-all # Various failures on Linux Fedora 9 X64, othervm mode sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java generic-all -# Solaris sparcv9: Failed to parse input emptysubject.jks: No such file or directory -sun/security/tools/keytool/emptysubject.sh generic-all - -# Fails on OpenSolaris, missing classes, slow on Solaris sparc -sun/security/ec/TestEC.java generic-all - -# Problems with windows x64 -sun/security/mscapi/IsSunMSCAPIAvailable.sh windows-x64 -sun/security/mscapi/RSAEncryptDecrypt.sh windows-x64 - -# Exception in test solaris-sparc -client -server, no windows -sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java solaris-all - -# Solaris sparc client, fails to compile? -sun/security/pkcs11/KeyStore/SecretKeysBasic.sh solaris-all - -# Fails on OpenSolaris java.net.BindException: Address already in use -sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java generic-all - -# Timeout on solaris-sparcv9 or ArrayIndexOutOfBoundsException? -sun/security/rsa/TestKeyPairGeneratorLength.java solaris-all -sun/security/rsa/TestSignatures.java solaris-all - -# Do not seem to run on windows machines? dll missing? -sun/security/tools/jarsigner/emptymanifest.sh windows-all - -# Files does not exist or no encoding? solaris-sparcv9 -sun/security/tools/keytool/importreadall.sh solaris-all -sun/security/tools/keytool/selfissued.sh solaris-all - ############################################################################ # jdk_swing (not using samevm)
--- a/jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java Fri Aug 12 12:26:31 2011 +0800 @@ -43,8 +43,9 @@ static void use(String f) throws Exception { System.out.println("Testing " + f + "..."); System.setProperty("java.security.auth.login.config", f); - try { - new FileInputStream(new URL(f).getFile().replace('/', File.separatorChar)); + try (FileInputStream fis = + new FileInputStream(new URL(f).getFile().replace('/', File.separatorChar))) { + // do nothing } catch (Exception e) { System.out.println("Even old implementation does not support it. Ignored."); return;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/security/testlibrary/Providers.java Fri Aug 12 12:26:31 2011 +0800 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.security.Provider; +import java.security.Security; + +public class Providers { + public static void setAt(Provider p, int pos) throws Exception { + if (Security.getProvider(p.getName()) != null) { + Security.removeProvider(p.getName()); + } + if (Security.insertProviderAt(p, pos) == -1) { + throw new Exception("cannot setAt"); + } + } +}
--- a/jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,7 +25,6 @@ * @test * @bug 4633622 * @summary bug in LoginContext when Configuration is subclassed - * * @build ResetConfigModule ResetModule * @run main ResetConfigModule */ @@ -40,32 +39,42 @@ public static void main(String[] args) throws Exception { - Configuration.setConfiguration(new MyConfig()); + Configuration previousConf = Configuration.getConfiguration(); + ClassLoader previousCL = Thread.currentThread().getContextClassLoader(); - LoginContext lc = new LoginContext("test"); try { - lc.login(); - throw new SecurityException("test 1 failed"); - } catch (LoginException le) { - if (le.getCause() != null && - le.getCause() instanceof SecurityException) { - System.out.println("good so far"); - } else { - throw le; + Thread.currentThread().setContextClassLoader( + ResetConfigModule.class.getClassLoader()); + Configuration.setConfiguration(new MyConfig()); + + LoginContext lc = new LoginContext("test"); + try { + lc.login(); + throw new SecurityException("test 1 failed"); + } catch (LoginException le) { + if (le.getCause() != null && + le.getCause() instanceof SecurityException) { + System.out.println("good so far"); + } else { + throw le; + } } - } - LoginContext lc2 = new LoginContext("test2"); - try { - lc2.login(); - throw new SecurityException("test 2 failed"); - } catch (LoginException le) { - if (le.getCause() != null && - le.getCause() instanceof SecurityException) { - System.out.println("test succeeded"); - } else { - throw le; + LoginContext lc2 = new LoginContext("test2"); + try { + lc2.login(); + throw new SecurityException("test 2 failed"); + } catch (LoginException le) { + if (le.getCause() != null && + le.getCause() instanceof SecurityException) { + System.out.println("test succeeded"); + } else { + throw le; + } } + } finally { + Configuration.setConfiguration(previousConf); + Thread.currentThread().setContextClassLoader(previousCL); } } }
--- a/jdk/test/sun/security/ec/TestEC.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ec/TestEC.java Fri Aug 12 12:26:31 2011 +0800 @@ -28,11 +28,13 @@ * @library ../pkcs11 * @library ../pkcs11/ec * @library ../pkcs11/sslecc + * @library ../../../java/security/testlibrary * @compile -XDignore.symbol.file TestEC.java * @run main TestEC */ import java.security.Provider; +import java.security.Security; /* * Leverage the collection of EC tests used by PKCS11 @@ -51,6 +53,15 @@ public class TestEC { public static void main(String[] args) throws Exception { + ProvidersSnapshot snapshot = ProvidersSnapshot.create(); + try { + main0(args); + } finally { + snapshot.restore(); + } + } + + public static void main0(String[] args) throws Exception { Provider p = new sun.security.ec.SunEC(); System.out.println("Running tests with " + p.getName() + " provider...\n"); @@ -67,6 +78,11 @@ new TestECGenSpec().main(p); new ReadPKCS12().main(p); new ReadCertificates().main(p); + + // ClientJSSEServerJSSE fails on Solaris 11 when both SunEC and + // SunPKCS11-Solaris providers are enabled. + // Workaround: + // Security.removeProvider("SunPKCS11-Solaris"); new ClientJSSEServerJSSE().main(p); long stop = System.currentTimeMillis();
--- a/jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java Fri Aug 12 12:26:31 2011 +0800 @@ -36,7 +36,7 @@ public static void main(String[] argv) throws Exception { System.setProperty("sun.security.jgss.mechanism", GSSUtil.GSS_SPNEGO_MECH_OID.toString()); try { - GSSManager.getInstance().createName("service@host", GSSName.NT_HOSTBASED_SERVICE, new Oid("1.3.6.1.5.5.2")); + GSSManager.getInstance().createName("service@localhost", GSSName.NT_HOSTBASED_SERVICE, new Oid("1.3.6.1.5.5.2")); } catch (GSSException e) { // This is OK, for example, krb5.conf is missing or other problems }
--- a/jdk/test/sun/security/pkcs11/PKCS11Test.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/PKCS11Test.java Fri Aug 12 12:26:31 2011 +0800 @@ -72,10 +72,33 @@ } public static void main(PKCS11Test test) throws Exception { - System.out.println("Beginning test run " + test.getClass().getName() + "..."); - testDefault(test); - testNSS(test); - testDeimos(test); + Provider[] oldProviders = Security.getProviders(); + try { + System.out.println("Beginning test run " + test.getClass().getName() + "..."); + testDefault(test); + testNSS(test); + testDeimos(test); + } finally { + Provider[] newProviders = Security.getProviders(); + // Do not restore providers if nothing changed. This is especailly + // useful for ./Provider/Login.sh, where a SecurityManager exists. + if (oldProviders.length == newProviders.length) { + boolean found = false; + for (int i = 0; i<oldProviders.length; i++) { + if (oldProviders[i] != newProviders[i]) { + found = true; + break; + } + } + if (!found) return; + } + for (Provider p: newProviders) { + Security.removeProvider(p.getName()); + } + for (Provider p: oldProviders) { + Security.addProvider(p); + } + } } public static void testDeimos(PKCS11Test test) throws Exception { @@ -153,21 +176,21 @@ return libdir; } + protected static void safeReload(String lib) throws Exception { + try { + System.load(lib); + } catch (UnsatisfiedLinkError e) { + if (e.getMessage().contains("already loaded")) { + return; + } + } + } + static boolean loadNSPR(String libdir) throws Exception { // load NSS softoken dependencies in advance to avoid resolver issues - try { - System.load(libdir + System.mapLibraryName(NSPR_PREFIX + "nspr4")); - } catch (UnsatisfiedLinkError e) { - // GLIBC problem on older linux-amd64 machines - if (libdir.contains("linux-amd64")) { - System.out.println(e); - System.out.println("NSS does not work on this platform, skipping."); - return false; - } - throw e; - } - System.load(libdir + System.mapLibraryName(NSPR_PREFIX + "plc4")); - System.load(libdir + System.mapLibraryName(NSPR_PREFIX + "plds4")); + safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "nspr4")); + safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "plc4")); + safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "plds4")); return true; }
--- a/jdk/test/sun/security/pkcs11/Secmod/AddPrivateKey.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/Secmod/AddPrivateKey.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary Test that the PKCS#11 KeyStore handles RSA, DSA, and EC keys * @author Andreas Sterbenz * @library .. + * @run main/othervm AddPrivateKey */ import java.io.*;
--- a/jdk/test/sun/security/pkcs11/Secmod/AddTrustedCert.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/Secmod/AddTrustedCert.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary make sure we can add a trusted cert to the NSS KeyStore module * @author Andreas Sterbenz * @library .. + * @run main/othervm AddTrustedCert */ import java.io.*;
--- a/jdk/test/sun/security/pkcs11/Secmod/Crypto.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/Secmod/Crypto.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary verify that NSS no-db mode works correctly * @author Andreas Sterbenz * @library .. + * @run main/othervm Crypto */ import java.util.*;
--- a/jdk/test/sun/security/pkcs11/Secmod/GetPrivateKey.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/Secmod/GetPrivateKey.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary make sure we can access the NSS softtoken KeyStore and use a private key * @author Andreas Sterbenz * @library .. + * @run main/othervm GetPrivateKey */ import java.util.*;
--- a/jdk/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary store a NSS PKCS11 PrivateKeyEntry to JKS KeyStore throws confusing NPE * @author Wang Weijun * @library .. + * @run main/othervm JksSetPrivateKey */ import java.util.*;
--- a/jdk/test/sun/security/pkcs11/Secmod/TrustAnchors.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/Secmod/TrustAnchors.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary make sure we can access the NSS trust anchor module * @author Andreas Sterbenz * @library .. + * @run main/othervm TrustAnchors */ import java.util.*;
--- a/jdk/test/sun/security/pkcs11/SecmodTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/SecmodTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -44,8 +44,8 @@ if (loadNSPR(LIBPATH) == false) { return false; } - System.load(LIBPATH + System.mapLibraryName("softokn3")); - System.load(LIBPATH + System.mapLibraryName("nssckbi")); + safeReload(LIBPATH + System.mapLibraryName("softokn3")); + safeReload(LIBPATH + System.mapLibraryName("nssckbi")); DBDIR = System.getProperty("test.classes", ".") + SEP + "tmpdb"; System.setProperty("pkcs11test.nss.db", DBDIR);
--- a/jdk/test/sun/security/pkcs11/ec/ReadCertificates.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/ec/ReadCertificates.java Fri Aug 12 12:26:31 2011 +0800 @@ -28,6 +28,7 @@ * and verify their signatures * @author Andreas Sterbenz * @library .. + * @library ../../../../java/security/testlibrary */ import java.io.*; @@ -62,7 +63,7 @@ System.out.println("Provider does not support ECDSA, skipping..."); return; } - Security.insertProviderAt(p, 1); + Providers.setAt(p, 1); random = new SecureRandom(); factory = CertificateFactory.getInstance("X.509");
--- a/jdk/test/sun/security/pkcs11/ec/ReadPKCS12.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/ec/ReadPKCS12.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary Verify that we can parse ECPrivateKeys from PKCS#12 and use them * @author Andreas Sterbenz * @library .. + * @library ../../../../java/security/testlibrary */ import java.io.*; @@ -52,7 +53,7 @@ System.out.println("Provider does not support ECDSA, skipping..."); return; } - Security.insertProviderAt(p, 1); + Providers.setAt(p, 1); CertificateFactory factory = CertificateFactory.getInstance("X.509"); try {
--- a/jdk/test/sun/security/pkcs11/ec/TestECDH.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/ec/TestECDH.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary Basic known answer test for ECDH * @author Andreas Sterbenz * @library .. + * @library ../../../../java/security/testlibrary */ import java.io.*; @@ -59,7 +60,7 @@ System.out.println("Provider does not support ECDH, skipping"); return; } - Security.insertProviderAt(p, 1); + Providers.setAt(p, 1); if (false) { KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", p);
--- a/jdk/test/sun/security/pkcs11/ec/TestECDSA.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/ec/TestECDSA.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary basic test of SHA1withECDSA and NONEwithECDSA signing/verifying * @author Andreas Sterbenz * @library .. + * @library ../../../../java/security/testlibrary */ import java.io.*; @@ -115,7 +116,7 @@ System.out.println("ECDSA not supported, skipping"); return; } - Security.insertProviderAt(provider, 1); + Providers.setAt(provider, 1); if (false) { KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", provider);
--- a/jdk/test/sun/security/pkcs11/fips/CipherTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/fips/CipherTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -394,47 +394,52 @@ public static void main(PeerFactory peerFactory, KeyStore keyStore, String[] args) throws Exception { + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + long time = System.currentTimeMillis(); + String relPath; + if ((args != null) && (args.length > 0) && args[0].equals("sh")) { + relPath = pathToStoresSH; + } else { + relPath = pathToStores; + } + PATH = new File(System.getProperty("test.src", "."), relPath); + CipherTest.peerFactory = peerFactory; + System.out.print( + "Initializing test '" + peerFactory.getName() + "'..."); +// secureRandom = new SecureRandom(); +// secureRandom.nextInt(); +// trustStore = readKeyStore(trustStoreFile); + CipherTest.keyStore = keyStore; +// keyStore = readKeyStore(keyStoreFile); + KeyManagerFactory keyFactory = + KeyManagerFactory.getInstance( + KeyManagerFactory.getDefaultAlgorithm()); + keyFactory.init(keyStore, "test12".toCharArray()); + keyManager = (X509ExtendedKeyManager)keyFactory.getKeyManagers()[0]; - long time = System.currentTimeMillis(); - String relPath; - if ((args != null) && (args.length > 0) && args[0].equals("sh")) { - relPath = pathToStoresSH; - } else { - relPath = pathToStores; + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(keyStore); + trustManager = (X509TrustManager)tmf.getTrustManagers()[0]; + +// trustManager = new AlwaysTrustManager(); + SSLContext context = SSLContext.getInstance("TLS"); + context.init(new KeyManager[] {keyManager}, + new TrustManager[] {trustManager}, null); + SSLContext.setDefault(context); + + CipherTest cipherTest = new CipherTest(peerFactory); + Thread serverThread = new Thread(peerFactory.newServer(cipherTest), + "Server"); + serverThread.setDaemon(true); + serverThread.start(); + System.out.println("Done"); + cipherTest.run(); + time = System.currentTimeMillis() - time; + System.out.println("Done. (" + time + " ms)"); + } finally { + SSLContext.setDefault(reservedSSLContext); } - PATH = new File(System.getProperty("test.src", "."), relPath); - CipherTest.peerFactory = peerFactory; - System.out.print( - "Initializing test '" + peerFactory.getName() + "'..."); -// secureRandom = new SecureRandom(); -// secureRandom.nextInt(); -// trustStore = readKeyStore(trustStoreFile); - CipherTest.keyStore = keyStore; -// keyStore = readKeyStore(keyStoreFile); - KeyManagerFactory keyFactory = - KeyManagerFactory.getInstance( - KeyManagerFactory.getDefaultAlgorithm()); - keyFactory.init(keyStore, "test12".toCharArray()); - keyManager = (X509ExtendedKeyManager)keyFactory.getKeyManagers()[0]; - - TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - tmf.init(keyStore); - trustManager = (X509TrustManager)tmf.getTrustManagers()[0]; - -// trustManager = new AlwaysTrustManager(); - SSLContext context = SSLContext.getInstance("TLS"); - context.init(new KeyManager[] {keyManager}, new TrustManager[] {trustManager}, null); - SSLContext.setDefault(context); - - CipherTest cipherTest = new CipherTest(peerFactory); - Thread serverThread = new Thread(peerFactory.newServer(cipherTest), - "Server"); - serverThread.setDaemon(true); - serverThread.start(); - System.out.println("Done"); - cipherTest.run(); - time = System.currentTimeMillis() - time; - System.out.println("Done. (" + time + " ms)"); } static abstract class PeerFactory {
--- a/jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,7 @@ * @bug 6313675 6323647 * @summary Verify that all ciphersuites work in FIPS mode * @library .. + * @run main/othervm ClientJSSEServerJSSE * @ignore JSSE supported cipher suites are changed with CR 6916074, * need to update this test case in JDK 7 soon * @author Andreas Sterbenz
--- a/jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary Verify that the SunJSSE trustmanager works correctly in FIPS mode * @author Andreas Sterbenz * @library .. + * @run main/othervm TrustManagerTest */ import java.io.*;
--- a/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java Fri Aug 12 12:26:31 2011 +0800 @@ -48,32 +48,35 @@ public void main(Provider p) throws Exception { long start = System.currentTimeMillis(); Security.addProvider(p); - String PROVIDER = p.getName(); - String javaHome = System.getProperty("java.home"); - String caCerts = javaHome + SEP + "lib" + SEP + "security" + SEP + "cacerts"; - InputStream in = new FileInputStream(caCerts); - KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); - ks.load(in, null); - in.close(); - for (Enumeration e = ks.aliases(); e.hasMoreElements(); ) { - String alias = (String)e.nextElement(); - if (ks.isCertificateEntry(alias)) { - System.out.println("* Testing " + alias + "..."); - X509Certificate cert = (X509Certificate)ks.getCertificate(alias); - PublicKey key = cert.getPublicKey(); - String alg = key.getAlgorithm(); - if (alg.equals("RSA")) { - System.out.println("Signature algorithm: " + cert.getSigAlgName()); - cert.verify(key, PROVIDER); + try { + String PROVIDER = p.getName(); + String javaHome = System.getProperty("java.home"); + String caCerts = javaHome + SEP + "lib" + SEP + "security" + SEP + "cacerts"; + InputStream in = new FileInputStream(caCerts); + KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); + ks.load(in, null); + in.close(); + for (Enumeration e = ks.aliases(); e.hasMoreElements(); ) { + String alias = (String)e.nextElement(); + if (ks.isCertificateEntry(alias)) { + System.out.println("* Testing " + alias + "..."); + X509Certificate cert = (X509Certificate)ks.getCertificate(alias); + PublicKey key = cert.getPublicKey(); + String alg = key.getAlgorithm(); + if (alg.equals("RSA")) { + System.out.println("Signature algorithm: " + cert.getSigAlgName()); + cert.verify(key, PROVIDER); + } else { + System.out.println("Skipping cert with key: " + alg); + } } else { - System.out.println("Skipping cert with key: " + alg); + System.out.println("Skipping alias " + alias); } - } else { - System.out.println("Skipping alias " + alias); } + long stop = System.currentTimeMillis(); + System.out.println("All tests passed (" + (stop - start) + " ms)."); + } finally { + Security.removeProvider(p.getName()); } - long stop = System.currentTimeMillis(); - System.out.println("All tests passed (" + (stop - start) + " ms)."); } - }
--- a/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,7 @@ * @summary Verify that all ciphersuites work (incl. ECC using NSS crypto) * @author Andreas Sterbenz * @library .. + * @library ../../../../java/security/testlibrary */ import java.security.*; @@ -45,7 +46,7 @@ System.out.println("Provider does not support EC, skipping"); return; } - Security.insertProviderAt(p, 1); + Providers.setAt(p, 1); CipherTest.main(new JSSEFactory(), cmdArgs); Security.removeProvider(p.getName()); }
--- a/jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java Fri Aug 12 12:26:31 2011 +0800 @@ -86,7 +86,9 @@ // Reads from JKS keystore and pre-calculate KeyStore ks = KeyStore.getInstance("jks"); - ks.load(new FileInputStream(JKSFILE), PASSWORD); + try (FileInputStream fis = new FileInputStream(JKSFILE)) { + ks.load(fis, PASSWORD); + } for (int i=0; i<SIZE; i++) { aliases[i] = "p" + i; byte[] enckey = cipher.doFinal( @@ -103,11 +105,15 @@ for (int i=0; i<SIZE; i++) { p12.setKeyEntry(aliases[i], keys[i], certChains[i]); } - p12.store(new FileOutputStream(P12FILE), PASSWORD); + try (FileOutputStream fos = new FileOutputStream(P12FILE)) { + p12.store(fos, PASSWORD); + } // Check private keys still match certs p12 = KeyStore.getInstance("pkcs12"); - p12.load(new FileInputStream(P12FILE), PASSWORD); + try (FileInputStream fis = new FileInputStream(P12FILE)) { + p12.load(fis, PASSWORD); + } for (int i=0; i<SIZE; i++) { String a = "p" + i; X509Certificate x = (X509Certificate)p12.getCertificate(a);
--- a/jdk/test/sun/security/provider/PolicyFile/Comparator.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/provider/PolicyFile/Comparator.java Fri Aug 12 12:26:31 2011 +0800 @@ -24,6 +24,7 @@ /* * @test * @bug 5037004 + * @run main/othervm Comparator * @summary Frivolous ClassCastExceptions thrown by SubjectCodeSource.implies * * Note: if you want to see the java.security.debug output,
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -40,28 +40,32 @@ TrustManagerFactory tmf; KeyManagerFactory kmf; - Security.addProvider(new MyProvider()); - - System.out.println("getting a javax SSLContext"); - sslc = SSLContext.getInstance("javax"); - sslc.init(null, null, null); - System.out.println("\ngetting a com SSLContext"); - sslc = SSLContext.getInstance("com"); - sslc.init(null, null, null); + Provider extraProvider = new MyProvider(); + Security.addProvider(extraProvider); + try { + System.out.println("getting a javax SSLContext"); + sslc = SSLContext.getInstance("javax"); + sslc.init(null, null, null); + System.out.println("\ngetting a com SSLContext"); + sslc = SSLContext.getInstance("com"); + sslc.init(null, null, null); - System.out.println("\ngetting a javax TrustManagerFactory"); - tmf = TrustManagerFactory.getInstance("javax"); - tmf.init((KeyStore) null); - System.out.println("\ngetting a com TrustManagerFactory"); - tmf = TrustManagerFactory.getInstance("com"); - tmf.init((KeyStore) null); + System.out.println("\ngetting a javax TrustManagerFactory"); + tmf = TrustManagerFactory.getInstance("javax"); + tmf.init((KeyStore) null); + System.out.println("\ngetting a com TrustManagerFactory"); + tmf = TrustManagerFactory.getInstance("com"); + tmf.init((KeyStore) null); - System.out.println("\ngetting a javax KeyManagerFactory"); - kmf = KeyManagerFactory.getInstance("javax"); - kmf.init((KeyStore) null, null); - System.out.println("\ngetting a com KeyManagerFactory"); - kmf = KeyManagerFactory.getInstance("com"); - kmf.init((KeyStore) null, null); + System.out.println("\ngetting a javax KeyManagerFactory"); + kmf = KeyManagerFactory.getInstance("javax"); + kmf.init((KeyStore) null, null); + System.out.println("\ngetting a com KeyManagerFactory"); + kmf = KeyManagerFactory.getInstance("com"); + kmf.init((KeyStore) null, null); + } finally { + Security.removeProvider(extraProvider.getName()); + } } }
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4814140 * @summary AppInputStream: read can block a close + * @run main/othervm ReadBlocksClose + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4514971 * @summary Verify applications do not read handshake data after failure + * @run main/othervm ReadHandshake + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadZeroBytes.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadZeroBytes.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 6697270 * @summary Inputstream dosent behave correct + * @run main/othervm ReadZeroBytes + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4413664 * @summary remove mark/reset functionality from AppInputStream + * @run main/othervm RemoveMarkReset + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test 1.3 01/03/08 * @bug 4378397 * @summary JSSE socket output stream doesn't throw after socket is closed + * @run main/othervm NoExceptionOnClose + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Jaya Hangal */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/CipherSuiteOrder.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/CipherSuiteOrder.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 4330535 * @summary Client should follow suite order in * SSLSocket.setEnabledCipherSuites() + * @run main/othervm CipherSuiteOrder + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Jaya Hangal */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 6690018 * @summary RSAClientKeyExchange NullPointerException + * @run main/othervm RSAExport + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ /*
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,7 +1,10 @@ /* * @test * @build TestThread Traffic Handler ServerHandler ServerThread ClientThread - * @run main/timeout=140 main + * @run main/othervm/timeout=140 main + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @summary Make sure that different configurations of SSL sockets work */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/HandshakeOutStream/NullCerts.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/HandshakeOutStream/NullCerts.java Fri Aug 12 12:26:31 2011 +0800 @@ -24,7 +24,12 @@ /* * @test * @bug 4453053 - * @summary If a server shuts down correctly during handshaking, the client doesn't see it. + * @summary If a server shuts down correctly during handshaking, the client + * doesn't see it. + * @run main/othervm NullCerts + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ClientHelloRead.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ClientHelloRead.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -25,6 +25,10 @@ * @test * @bug 4432868 * @summary A client-hello message may not always be read correctly + * @run main/othervm ClientHelloRead + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; @@ -154,23 +158,29 @@ * we want to avoid URLspoofCheck failures in cases where the cert * DN name does not match the hostname in the URL. */ - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - URL url = new URL("https://" + "localhost:" + serverPort - + "/index.html"); - BufferedReader in = null; + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { - in = new BufferedReader(new InputStreamReader( - url.openStream())); - String inputLine; - System.out.print("Client recieved from the server: "); - while ((inputLine = in.readLine()) != null) - System.out.println(inputLine); - in.close(); - } catch (SSLException e) { - if (in != null) + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + URL url = new URL("https://" + "localhost:" + serverPort + + "/index.html"); + BufferedReader in = null; + try { + in = new BufferedReader(new InputStreamReader( + url.openStream())); + String inputLine; + System.out.print("Client recieved from the server: "); + while ((inputLine = in.readLine()) != null) + System.out.println(inputLine); in.close(); - throw e; + } catch (SSLException e) { + if (in != null) + in.close(); + throw e; + } + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } }
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,7 +27,10 @@ * @summary Setting timeouts on SSLSockets immediately return null * after timeout occurs. This bug was fixed as part of 4393337, * but this is another bug we want to check regressions against. - * @run main/timeout=140 SSLSocketTimeoutNulls + * @run main/othervm/timeout=140 SSLSocketTimeoutNulls + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, Oracle and/or its affiliates. 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 @@ -147,12 +147,18 @@ Thread.sleep(50); } - HttpsURLConnection.setDefaultHostnameVerifier(this); + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + HttpsURLConnection.setDefaultHostnameVerifier(this); - URL url = new URL("https://localhost:" + serverPort + "/"); - HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); + URL url = new URL("https://localhost:" + serverPort + "/"); + HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); - System.out.println("response is " + urlc.getResponseCode()); + System.out.println("response is " + urlc.getResponseCode()); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); + } } public boolean verify(String hostname, SSLSession session) {
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadKSProvider.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadKSProvider.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4919147 * @summary Support for token-based KeyStores + * @run main/othervm BadKSProvider + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4919147 * @summary Support for token-based KeyStores + * @run main/othervm BadTSProvider + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4919147 * @summary Support for token-based KeyStores + * @run main/othervm GoodProvider + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 6207322 * @summary SSLEngine is returning a premature FINISHED message when doing * an abbreviated handshake. + * @run main/othervm RehandshakeFinished + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * This test may need some updating if the messages change order. * Currently I'm expecting that there is a simple renegotiation, with
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 6492872 * @summary Deadlock in SSLEngine + * @run main/othervm SSLEngineDeadlock + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Brad R. Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4910892 * @summary 4518403 was not properly fixed. hashcode should be hashCode. + * @run main/othervm HashCodeMissing + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 6447412 * @summary Issue with socket.close() for ssl sockets when poweroff on * other system + * @run main/othervm AsyncSSLSocketClose + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import javax.net.ssl.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java Fri Aug 12 12:26:31 2011 +0800 @@ -24,8 +24,11 @@ /* * @test * @bug 4390659 - * @run main/othervm -Djavax.net.debug=all ClientModeClientAuth * @summary setNeedClientAuth() isn't working after a handshaker is established + * @run main/othervm ClientModeClientAuth + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4836493 * @summary Socket timeouts for SSLSockets causes data corruption. + * @run main/othervm ClientTimeout + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 4969799 * @summary javax.net.ssl.SSLSocket.SSLSocket(InetAddress,int) shouldn't * throw exception + * @run main/othervm CloseSocketException + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * This is making sure that starting a new handshake throws the right * exception. There is a similar test for SSLEngine.
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4403428 * @summary Invalidating JSSE session on server causes SSLProtocolException + * @run main/othervm InvalidateServerSessionRenegotiate + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NewSocketMethods.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NewSocketMethods.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4429176 * @summary need to sync up SSL sockets with merlin java.net changes + * @run main/othervm NewSocketMethods + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4404399 * @summary When a layered SSL socket is closed, it should wait for close_notify + * @run main/othervm NonAutoClose + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4482446 * @summary java.net.SocketTimeoutException on 98, NT, 2000 for JSSE + * @run main/othervm ReuseAddr + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReverseNameLookup.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReverseNameLookup.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4748292 * @summary Prevent/Disable reverse name lookups with JSSE SSL sockets + * @run main/othervm ReverseNameLookup + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 4361124 4325806 * @summary SSLServerSocket isn't throwing exceptions when negotiations are * failing & java.net.SocketException: occures in Auth and clientmode + * @run main/othervm SSLSocketImplThrowsWrongExceptions + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4836493 * @summary Socket timeouts for SSLSockets causes data corruption. + * @run main/othervm ServerTimeout + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SetClientMode.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SetClientMode.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 6223624 * @summary SSLSocket.setUseClientMode() fails to throw expected * IllegalArgumentException + * @run main/othervm SetClientMode + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ /*
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,11 @@ * @test * @bug 4480441 * @summary startHandshake giving wrong message when unconnected. + * @run main/othervm UnconnectedSocketWrongExceptions + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. + * * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,7 +25,10 @@ * @test * @bug 4392475 * @summary Calling setWantClientAuth(true) disables anonymous suites - * @run main/timeout=180 AnonCipherWithWantClientAuth + * @run main/othervm/timeout=180 AnonCipherWithWantClientAuth + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java Fri Aug 12 12:26:31 2011 +0800 @@ -22,10 +22,13 @@ */ /** - *@test - *@bug 4302026 - *@run main GetPeerHost - *@summary make sure the server side doesn't do DNS lookup. + * @test + * @bug 4302026 + * @run main/othervm GetPeerHost + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. + * @summary make sure the server side doesn't do DNS lookup. */ import javax.net.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SocketCreation/SocketCreation.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SocketCreation/SocketCreation.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,7 +27,10 @@ * @summary This test tries all the different ways in which an SSL * connection can be established to exercise different SSLSocketImpl * constructors. - * @run main/timeout=300 SocketCreation + * @run main/othervm/timeout=300 SocketCreation + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4717766 * @summary 1.0.3 JsseX509TrustManager erroneously calls isClientTrusted() + * @run main/othervm ClientServer + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @ignore JSSE supports algorithm constraints with CR 6916074, * need to update this test case in JDK 7 soon * @author Brad Wetmore
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/PKIXExtendedTM.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/PKIXExtendedTM.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @test * @bug 6916074 * @summary Add support for TLS 1.2 + * @run main/othervm PKIXExtendedTM + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.net.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,9 @@ * @summary support self-issued certificate * @run main/othervm SelfIssuedCert PKIX * @run main/othervm SelfIssuedCert SunX509 + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java Fri Aug 12 12:26:31 2011 +0800 @@ -24,8 +24,11 @@ /* * @test * @bug 6916074 - * @run main/othervm -Djavax.net.debug=all SunX509ExtendedTM * @summary Add support for TLS 1.2 + * @run main/othervm SunX509ExtendedTM + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.net.*;
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 6916074 * @summary Add support for TLS 1.2 + * @run main/othervm X509ExtendedTMEnabled + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * Ensure that the SunJSSE provider enables the X509ExtendedTrustManager. */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 4522550 * @summary SSLContext TrustMananagerFactory and KeyManagerFactory * should throw if not init + * @run main/othervm ProviderInit + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Jaya Hangal */
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyAuthTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyAuthTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -25,7 +25,11 @@ * @test * @bug 4323990 4413069 * @summary HttpsURLConnection doesn't send Proxy-Authorization on CONNECT - * Incorrect checking of proxy server response + * Incorrect checking of proxy server response + * @run main/othervm ProxyAuthTest + * + * No way to reserve and restore java.lang.Authenticator, need to run this + * test in othervm mode. */ import java.io.*; @@ -77,8 +81,7 @@ /* * Main method to create the server and the client */ - public static void main(String args[]) throws Exception - { + public static void main(String args[]) throws Exception { String keyFilename = System.getProperty("test.src", "./") + "/" + pathToStores + "/" + keyStoreFile; @@ -110,10 +113,9 @@ try { doClientSide(); } catch (Exception e) { - System.out.println("Client side failed: " + - e.getMessage()); + System.out.println("Client side failed: " + e.getMessage()); throw e; - } + } } private static ServerSocketFactory getServerSocketFactory
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ServerIdentityTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ServerIdentityTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -26,6 +26,11 @@ * @bug 4328195 * @summary Need to include the alternate subject DN for certs, * https should check for this + * @run main/othervm ServerIdentityTest + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. + * * @author Yingxian Wang */ @@ -136,39 +141,45 @@ volatile Exception clientException = null; public static void main(String[] args) throws Exception { - for (int i = 0; i < keyStoreFiles.length; i++) { - String keyFilename = - System.getProperty("test.src", ".") + "/" + pathToStores + - "/" + keyStoreFiles[i]; - String trustFilename = - System.getProperty("test.src", ".") + "/" + pathToStores + - "/" + trustStoreFiles[i]; + SSLSocketFactory reservedSFactory = + HttpsURLConnection.getDefaultSSLSocketFactory(); + try { + for (int i = 0; i < keyStoreFiles.length; i++) { + String keyFilename = + System.getProperty("test.src", ".") + "/" + pathToStores + + "/" + keyStoreFiles[i]; + String trustFilename = + System.getProperty("test.src", ".") + "/" + pathToStores + + "/" + trustStoreFiles[i]; - System.setProperty("javax.net.ssl.keyStore", keyFilename); - System.setProperty("javax.net.ssl.keyStorePassword", passwd); - System.setProperty("javax.net.ssl.trustStore", trustFilename); - System.setProperty("javax.net.ssl.trustStorePassword", passwd); + System.setProperty("javax.net.ssl.keyStore", keyFilename); + System.setProperty("javax.net.ssl.keyStorePassword", passwd); + System.setProperty("javax.net.ssl.trustStore", trustFilename); + System.setProperty("javax.net.ssl.trustStorePassword", passwd); - if (debug) - System.setProperty("javax.net.debug", "all"); - SSLContext context = SSLContext.getInstance("SSL"); + if (debug) + System.setProperty("javax.net.debug", "all"); + SSLContext context = SSLContext.getInstance("SSL"); - KeyManager[] kms = new KeyManager[1]; - KeyStore ks = KeyStore.getInstance("JKS"); - FileInputStream fis = new FileInputStream(keyFilename); - ks.load(fis, passwd.toCharArray()); - fis.close(); - KeyManager km = new MyKeyManager(ks, passwd.toCharArray()); - kms[0] = km; - context.init(kms, null, null); - HttpsURLConnection.setDefaultSSLSocketFactory( - context.getSocketFactory()); + KeyManager[] kms = new KeyManager[1]; + KeyStore ks = KeyStore.getInstance("JKS"); + FileInputStream fis = new FileInputStream(keyFilename); + ks.load(fis, passwd.toCharArray()); + fis.close(); + KeyManager km = new MyKeyManager(ks, passwd.toCharArray()); + kms[0] = km; + context.init(kms, null, null); + HttpsURLConnection.setDefaultSSLSocketFactory( + context.getSocketFactory()); - /* - * Start the tests. - */ - System.out.println("Testing " + keyFilename); - new ServerIdentityTest(context, keyStoreFiles[i]); + /* + * Start the tests. + */ + System.out.println("Testing " + keyFilename); + new ServerIdentityTest(context, keyStoreFiles[i]); + } + } finally { + HttpsURLConnection.setDefaultSSLSocketFactory(reservedSFactory); } }
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,11 @@ * @bug 6668231 * @summary Presence of a critical subjectAltName causes JSSE's SunX509 to * fail trusted checks + * @run main/othervm CriticalSubjectAltName + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. + * * @author Xuelei Fan * * This test depends on binary keystore, crisubn.jks and trusted.jks. Because
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/GetResponseCode.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/GetResponseCode.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,11 @@ * @test * @bug 4482187 * @summary HttpsClient tests are failing for build 71 + * @run main/othervm GetResponseCode + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. + * * @author Yingxian Wang */ import java.io.*;
--- a/jdk/test/sun/security/ssl/javax/net/ssl/Fix5070632.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/Fix5070632.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, Oracle and/or its affiliates. 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 @@ -25,6 +25,10 @@ * @test * @bug 5070632 * @summary Default SSLSockeFactory override createSocket() now + * @run main/othervm Fix5070632 + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Weijun Wang */ @@ -35,8 +39,13 @@ public class Fix5070632 { public static void main(String[] args) throws Exception { + // reserve the security properties + String reservedSFacProvider = + Security.getProperty("ssl.SocketFactory.provider"); + // use a non-existing provider so that the DefaultSSLSocketFactory // will be used, and then test against it. + Security.setProperty("ssl.SocketFactory.provider", "foo.NonExistant"); SSLSocketFactory fac = (SSLSocketFactory)SSLSocketFactory.getDefault(); try { @@ -46,8 +55,16 @@ System.out.println("Throw SocketException"); se.printStackTrace(); return; + } finally { + // restore the security properties + if (reservedSFacProvider == null) { + reservedSFacProvider = ""; + } + Security.setProperty("ssl.SocketFactory.provider", + reservedSFacProvider); } + + // if not caught, or other exception caught, then it's error throw new Exception("should throw SocketException"); - // if not caught, or other exception caught, then it's error } }
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -27,6 +27,10 @@ * @summary Need to revisit the javadocs for JSSE, especially the * promoted classes, and HttpsURLConnection.getCipherSuite throws * NullPointerException + * @run main/othervm ComURLNulls + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */ @@ -34,6 +38,7 @@ import java.io.*; import javax.net.ssl.*; import com.sun.net.ssl.HttpsURLConnection; +import com.sun.net.ssl.HostnameVerifier; /* * Tests that the com null argument changes made it in ok. @@ -42,59 +47,64 @@ public class ComURLNulls { public static void main(String[] args) throws Exception { - - System.setProperty("java.protocol.handler.pkgs", - "com.sun.net.ssl.internal.www.protocol"); - /** - * This test does not establish any connection to the specified - * URL, hence a dummy URL is used. - */ - URL foobar = new URL("https://example.com/"); - - HttpsURLConnection urlc = - (HttpsURLConnection) foobar.openConnection(); - - try { - urlc.getCipherSuite(); - } catch (IllegalStateException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } - - try { - urlc.getServerCertificateChain(); - } catch (IllegalStateException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } - + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { - urlc.setDefaultHostnameVerifier(null); - } catch (IllegalArgumentException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } + System.setProperty("java.protocol.handler.pkgs", + "com.sun.net.ssl.internal.www.protocol"); + /** + * This test does not establish any connection to the specified + * URL, hence a dummy URL is used. + */ + URL foobar = new URL("https://example.com/"); + + HttpsURLConnection urlc = + (HttpsURLConnection) foobar.openConnection(); - try { - urlc.setHostnameVerifier(null); - } catch (IllegalArgumentException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } + try { + urlc.getCipherSuite(); + } catch (IllegalStateException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } + + try { + urlc.getServerCertificateChain(); + } catch (IllegalStateException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } - try { - urlc.setDefaultSSLSocketFactory(null); - } catch (IllegalArgumentException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } + try { + urlc.setDefaultHostnameVerifier(null); + } catch (IllegalArgumentException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } + + try { + urlc.setHostnameVerifier(null); + } catch (IllegalArgumentException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } - try { - urlc.setSSLSocketFactory(null); - } catch (IllegalArgumentException e) { - System.out.print("Caught proper exception"); - System.out.println(e.getMessage()); + try { + urlc.setDefaultSSLSocketFactory(null); + } catch (IllegalArgumentException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } + + try { + urlc.setSSLSocketFactory(null); + } catch (IllegalArgumentException e) { + System.out.print("Caught proper exception"); + System.out.println(e.getMessage()); + } + System.out.println("TESTS PASSED"); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - System.out.println("TESTS PASSED"); } }
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 4387882 * @summary Need to revisit the javadocs for JSSE, especially the * promoted classes. + * @run main/othervm ImplicitHandshake + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/JavaxURLNulls.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/JavaxURLNulls.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -42,63 +42,69 @@ public static void main(String[] args) throws Exception { - /** - * This test does not establish any connection to the specified - * URL, hence a dummy URL is used. - */ - URL foobar = new URL("https://example.com/"); - - HttpsURLConnection urlc = - (HttpsURLConnection) foobar.openConnection(); - + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { - urlc.getCipherSuite(); - } catch (IllegalStateException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } + /** + * This test does not establish any connection to the specified + * URL, hence a dummy URL is used. + */ + URL foobar = new URL("https://example.com/"); + + HttpsURLConnection urlc = + (HttpsURLConnection) foobar.openConnection(); + + try { + urlc.getCipherSuite(); + } catch (IllegalStateException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } + + try { + urlc.getLocalCertificates(); + } catch (IllegalStateException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } + + try { + urlc.getServerCertificates(); + } catch (IllegalStateException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } - try { - urlc.getLocalCertificates(); - } catch (IllegalStateException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } + try { + urlc.setDefaultHostnameVerifier(null); + } catch (IllegalArgumentException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } + + try { + urlc.setHostnameVerifier(null); + } catch (IllegalArgumentException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } - try { - urlc.getServerCertificates(); - } catch (IllegalStateException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); + try { + urlc.setDefaultSSLSocketFactory(null); + } catch (IllegalArgumentException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } + + try { + urlc.setSSLSocketFactory(null); + } catch (IllegalArgumentException e) { + System.out.print("Caught proper exception: "); + System.out.println(e.getMessage()); + } + System.out.println("TESTS PASSED"); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - - try { - urlc.setDefaultHostnameVerifier(null); - } catch (IllegalArgumentException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } - - try { - urlc.setHostnameVerifier(null); - } catch (IllegalArgumentException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } - - try { - urlc.setDefaultSSLSocketFactory(null); - } catch (IllegalArgumentException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } - - try { - urlc.setSSLSocketFactory(null); - } catch (IllegalArgumentException e) { - System.out.print("Caught proper exception: "); - System.out.println(e.getMessage()); - } - System.out.println("TESTS PASSED"); } }
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 4387882 * @summary Need to revisit the javadocs for JSSE, especially the * promoted classes. + * @run main/othervm SSLSessionNulls + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSocketInherit.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSocketInherit.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,10 @@ * @summary Need to revisit the javadocs for JSSE, especially the * promoted classes. This test checks to see if the settings * on the server sockets get propagated to the sockets. + * @run main/othervm SSLSocketInherit + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 4329114 * @summary Need better way of reflecting the reason when a chain is * rejected as untrusted. + * @run main/othervm CheckMyTrustedKeystore + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @ignore JSSE supports algorithm constraints with CR 6916074, * need to update this test case in JDK 7 soon * This is a serious hack job!
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java Fri Aug 12 12:26:31 2011 +0800 @@ -30,6 +30,10 @@ * Fixed 4354003: Need API to get client certificate chain * Fixed 4387961: HostnameVerifier needs to pass various hostnames * Fixed 4395266: HttpsURLConnection should be made protected + * @run main/othervm HttpsURLConnectionLocalCertificateChain + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 4280338 * @summary "Unsupported SSL message version" SSLProtocolException * w/SSL_RSA_WITH_NULL_MD5 + * @run main/othervm JSSERenegotiate + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Ram Marti * @author Brad Wetmore
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/KeyManagerTrustManager.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/KeyManagerTrustManager.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -35,6 +35,10 @@ * 4396290: Need a way to pass algorithm specific parameters to TM's and KM's * 4395286: The property for setting the default * KeyManagerFactory/TrustManagerFactory algorithms needs real name + * @run main/othervm KeyManagerTrustManager + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */ @@ -77,17 +81,40 @@ String kmfAlg = null; String tmfAlg = null; - Security.setProperty("ssl.KeyManagerFactory.algorithm", "hello"); - Security.setProperty("ssl.TrustManagerFactory.algorithm", "goodbye"); + // reserve the security properties + String reservedKMFacAlg = + Security.getProperty("ssl.KeyManagerFactory.algorithm"); + String reservedTMFacAlg = + Security.getProperty("ssl.TrustManagerFactory.algorithm"); - kmfAlg = KeyManagerFactory.getDefaultAlgorithm(); - tmfAlg = TrustManagerFactory.getDefaultAlgorithm(); + try { + Security.setProperty("ssl.KeyManagerFactory.algorithm", "hello"); + Security.setProperty("ssl.TrustManagerFactory.algorithm", + "goodbye"); + + kmfAlg = KeyManagerFactory.getDefaultAlgorithm(); + tmfAlg = TrustManagerFactory.getDefaultAlgorithm(); - if (!kmfAlg.equals("hello")) { - throw new Exception("ssl.KeyManagerFactory.algorithm not set"); - } - if (!tmfAlg.equals("goodbye")) { - throw new Exception("ssl.TrustManagerFactory.algorithm not set"); + if (!kmfAlg.equals("hello")) { + throw new Exception("ssl.KeyManagerFactory.algorithm not set"); + } + if (!tmfAlg.equals("goodbye")) { + throw new Exception( + "ssl.TrustManagerFactory.algorithm not set"); + } + } finally { + // restore the security properties + if (reservedKMFacAlg == null) { + reservedKMFacAlg = ""; + } + + if (reservedTMFacAlg == null) { + reservedTMFacAlg = ""; + } + Security.setProperty("ssl.KeyManagerFactory.algorithm", + reservedKMFacAlg); + Security.setProperty("ssl.TrustManagerFactory.algorithm", + reservedTMFacAlg); } } }
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLCtxAccessToSessCtx.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLCtxAccessToSessCtx.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4473210 * @summary SSLSessionContext should be accessible from SSLContext + * @run main/othervm SSLCtxAccessToSessCtx + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,10 @@ * @bug 6388456 * @summary Need adjustable TLS max record size for interoperability * with non-compliant stacks + * @run main/othervm AcceptLargeFragments + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * Check the system property "jsse.SSLEngine.acceptLargeFragments" *
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4981697 * @summary Rework the X509KeyManager to avoid incompatibility issues + * @run main/othervm ExtendedKeySocket + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad R. Wetmore */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,6 +27,10 @@ * @bug 6388456 * @summary Need adjustable TLS max record size for interoperability * with non-compliant + * @run main/othervm LargePacket + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Xuelei Fan */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4495742 * @summary Demonstrate SSLEngine switch from no client auth to client auth. + * @run main/othervm NoAuthClientAuth + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Brad R. Wetmore */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4366807 * @summary Need new APIs to get/set session timeout and session cache size. + * @run main/othervm SessionCacheSizeTests + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 4366807 * @summary Need new APIs to get/set session timeout and session cache size. + * @run main/othervm SessionTimeOutTests + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; @@ -207,7 +211,7 @@ timeout = sessCtx.getSessionTimeout(); System.out.println("timeout is changed to: " + timeout); System.out.println(); - } + } } // check the ids returned by the enumerator
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/testEnabledProtocols.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/testEnabledProtocols.java Fri Aug 12 12:26:31 2011 +0800 @@ -30,6 +30,10 @@ * session * 4701722 protocol mismatch exceptions should be consistent between * SSLv3 and TLSv1 + * @run main/othervm testEnabledProtocols + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Ram Marti */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, Oracle and/or its affiliates. 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 @@ -25,6 +25,10 @@ * @test * @bug 6449579 * @summary DefaultSSLServerSocketFactory does not override createServerSocket() + * @run main/othervm DefaultSSLServSocketFac + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.security.Security; import javax.net.ServerSocketFactory; @@ -33,6 +37,10 @@ public class DefaultSSLServSocketFac { public static void main(String[] args) throws Exception { + // reserve the security properties + String reservedSSFacProvider = + Security.getProperty("ssl.ServerSocketFactory.provider"); + try { Security.setProperty("ssl.ServerSocketFactory.provider", "oops"); ServerSocketFactory ssocketFactory = @@ -44,6 +52,13 @@ throw e; } // get the expected exception + } finally { + // restore the security properties + if (reservedSSFacProvider == null) { + reservedSSFacProvider = ""; + } + Security.setProperty("ssl.ServerSocketFactory.provider", + reservedSSFacProvider); } } }
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,7 +27,10 @@ * @test * @bug 4873188 * @summary Support TLS 1.1 - * @run main/othervm -Djavax.net.debug=all EmptyCertificateAuthorities + * @run main/othervm EmptyCertificateAuthorities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Xuelei Fan */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableBlockCipher.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableBlockCipher.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,7 +27,10 @@ * @test * @bug 4873188 * @summary Support TLS 1.1 - * @run main/othervm -Djavax.net.debug=all ExportableBlockCipher + * @run main/othervm ExportableBlockCipher + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Xuelei Fan */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableStreamCipher.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableStreamCipher.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,7 +27,10 @@ * @test * @bug 4873188 * @summary Support TLS 1.1 - * @run main/othervm -Djavax.net.debug=all ExportableStreamCipher + * @run main/othervm ExportableStreamCipher + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Xuelei Fan */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericBlockCipher.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericBlockCipher.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,7 +27,10 @@ * @test * @bug 4873188 * @summary Support TLS 1.1 - * @run main/othervm -Djavax.net.debug=all GenericBlockCipher + * @run main/othervm GenericBlockCipher + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Xuelei Fan */
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java Fri Aug 12 12:26:31 2011 +0800 @@ -27,7 +27,10 @@ * @test * @bug 4873188 * @summary Support TLS 1.1 - * @run main/othervm -Djavax.net.debug=all GenericStreamCipher + * @run main/othervm GenericStreamCipher + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @author Xuelei Fan */
--- a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java Fri Aug 12 12:26:31 2011 +0800 @@ -64,8 +64,8 @@ default: throw new Exception("Internal Test Error!"); } - System.out.println("Testing with " + (standardCiphers ? "standard" : "custom") + - " cipher suites"); + System.out.println("Testing with " + + (standardCiphers ? "standard" : "custom") + " cipher suites"); for (int j = 0; j < 4; j++) { String clsName = null; try { @@ -107,11 +107,16 @@ public static void main(String[] argv) throws Exception { String protocols[] = { "SSL", "TLS" }; - Security.insertProviderAt(new CheckSSLContextExport(protocols), 1); - for (int i = 0; i < protocols.length; i++) { - System.out.println("Testing " + protocols[i] + "'s SSLContext"); - test(protocols[i]); + Provider extraProvider = new CheckSSLContextExport(protocols); + Security.insertProviderAt(extraProvider, 1); + try { + for (int i = 0; i < protocols.length; i++) { + System.out.println("Testing " + protocols[i] + "'s SSLContext"); + test(protocols[i]); + } + System.out.println("Test Passed"); + } finally { + Security.removeProvider(extraProvider.getName()); } - System.out.println("Test Passed"); } }
--- a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport1.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport1.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. 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 @@ -26,6 +26,10 @@ * @bug 4635454 6208022 * @summary Check pluggability of SSLSocketFactory and * SSLServerSocketFactory classes. + * @run main/othervm CheckSockFacExport1 + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.util.*; @@ -37,36 +41,57 @@ public class CheckSockFacExport1 { public static void main(String argv[]) throws Exception { - Security.setProperty("ssl.SocketFactory.provider", - "MySSLSocketFacImpl"); - MySSLSocketFacImpl.useCustomCipherSuites(); - Security.setProperty("ssl.ServerSocketFactory.provider", - "MySSLServerSocketFacImpl"); - MySSLServerSocketFacImpl.useCustomCipherSuites(); + // reserve the security properties + String reservedSFacAlg = + Security.getProperty("ssl.SocketFactory.provider"); + String reservedSSFacAlg = + Security.getProperty("ssl.ServerSocketFactory.provider"); + + try { + Security.setProperty("ssl.SocketFactory.provider", + "MySSLSocketFacImpl"); + MySSLSocketFacImpl.useCustomCipherSuites(); + Security.setProperty("ssl.ServerSocketFactory.provider", + "MySSLServerSocketFacImpl"); + MySSLServerSocketFacImpl.useCustomCipherSuites(); - String[] supportedCS = null; - for (int i = 0; i < 2; i++) { - switch (i) { - case 0: - System.out.println("Testing SSLSocketFactory:"); - SSLSocketFactory sf = (SSLSocketFactory) - SSLSocketFactory.getDefault(); - supportedCS = sf.getSupportedCipherSuites(); - break; - case 1: - System.out.println("Testing SSLServerSocketFactory:"); - SSLServerSocketFactory ssf = (SSLServerSocketFactory) - SSLServerSocketFactory.getDefault(); - supportedCS = ssf.getSupportedCipherSuites(); - break; - default: - throw new Exception("Internal Test Error"); + String[] supportedCS = null; + for (int i = 0; i < 2; i++) { + switch (i) { + case 0: + System.out.println("Testing SSLSocketFactory:"); + SSLSocketFactory sf = (SSLSocketFactory) + SSLSocketFactory.getDefault(); + supportedCS = sf.getSupportedCipherSuites(); + break; + case 1: + System.out.println("Testing SSLServerSocketFactory:"); + SSLServerSocketFactory ssf = (SSLServerSocketFactory) + SSLServerSocketFactory.getDefault(); + supportedCS = ssf.getSupportedCipherSuites(); + break; + default: + throw new Exception("Internal Test Error"); + } + System.out.println(Arrays.asList(supportedCS)); + if (supportedCS.length == 0) { + throw new Exception("supported ciphersuites are empty"); + } } - System.out.println(Arrays.asList(supportedCS)); - if (supportedCS.length == 0) { - throw new Exception("supported ciphersuites are empty"); + System.out.println("Test Passed"); + } finally { + // restore the security properties + if (reservedSFacAlg == null) { + reservedSFacAlg = ""; } + + if (reservedSSFacAlg == null) { + reservedSSFacAlg = ""; + } + Security.setProperty("ssl.SocketFactory.provider", + reservedSFacAlg); + Security.setProperty("ssl.ServerSocketFactory.provider", + reservedSSFacAlg); } - System.out.println("Test Passed"); } }
--- a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. 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 @@ -25,7 +25,11 @@ * @test * @bug 4635454 * @summary Check pluggability of SSLSocketFactory and - * SSLServerSocketFactory classes. + * SSLServerSocketFactory classes. + * @run main/othervm CheckSockFacExport2 + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.security.*; import java.net.*; @@ -34,38 +38,59 @@ public class CheckSockFacExport2 { public static void main(String argv[]) throws Exception { - Security.setProperty("ssl.SocketFactory.provider", - "MySSLSocketFacImpl"); - MySSLSocketFacImpl.useStandardCipherSuites(); - Security.setProperty("ssl.ServerSocketFactory.provider", - "MySSLServerSocketFacImpl"); - MySSLServerSocketFacImpl.useStandardCipherSuites(); + // reserve the security properties + String reservedSFacAlg = + Security.getProperty("ssl.SocketFactory.provider"); + String reservedSSFacAlg = + Security.getProperty("ssl.ServerSocketFactory.provider"); - boolean result = false; - for (int i = 0; i < 2; i++) { - switch (i) { - case 0: - System.out.println("Testing SSLSocketFactory:"); - SSLSocketFactory sf = (SSLSocketFactory) - SSLSocketFactory.getDefault(); - result = (sf instanceof MySSLSocketFacImpl); - break; + try { + Security.setProperty("ssl.SocketFactory.provider", + "MySSLSocketFacImpl"); + MySSLSocketFacImpl.useStandardCipherSuites(); + Security.setProperty("ssl.ServerSocketFactory.provider", + "MySSLServerSocketFacImpl"); + MySSLServerSocketFacImpl.useStandardCipherSuites(); + + boolean result = false; + for (int i = 0; i < 2; i++) { + switch (i) { + case 0: + System.out.println("Testing SSLSocketFactory:"); + SSLSocketFactory sf = (SSLSocketFactory) + SSLSocketFactory.getDefault(); + result = (sf instanceof MySSLSocketFacImpl); + break; - case 1: - System.out.println("Testing SSLServerSocketFactory:"); - SSLServerSocketFactory ssf = (SSLServerSocketFactory) - SSLServerSocketFactory.getDefault(); - result = (ssf instanceof MySSLServerSocketFacImpl); - break; - default: - throw new Exception("Internal Test Error"); + case 1: + System.out.println("Testing SSLServerSocketFactory:"); + SSLServerSocketFactory ssf = (SSLServerSocketFactory) + SSLServerSocketFactory.getDefault(); + result = (ssf instanceof MySSLServerSocketFacImpl); + break; + default: + throw new Exception("Internal Test Error"); + } + if (result) { + System.out.println("...accepted valid SFs"); + } else { + throw new Exception("...wrong SF is used"); + } } - if (result) { - System.out.println("...accepted valid SFs"); - } else { - throw new Exception("...wrong SF is used"); + System.out.println("Test Passed"); + } finally { + // restore the security properties + if (reservedSFacAlg == null) { + reservedSFacAlg = ""; } + + if (reservedSSFacAlg == null) { + reservedSSFacAlg = ""; + } + Security.setProperty("ssl.SocketFactory.provider", + reservedSFacAlg); + Security.setProperty("ssl.ServerSocketFactory.provider", + reservedSSFacAlg); } - System.out.println("Test Passed"); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/http/ChunkedOutputStream/Test.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/http/ChunkedOutputStream/Test.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, Oracle and/or its affiliates. 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 @@ -26,6 +26,9 @@ * @bug 5026745 * @library ../../httpstest/ * @run main/othervm Test + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @summary Cannot flush output stream when writing to an HttpUrlConnection */ @@ -283,31 +286,37 @@ System.getProperty("test.src", "./") + "/" + pathToStores + "/" + trustStoreFile; - System.setProperty("javax.net.ssl.keyStore", keyFilename); - System.setProperty("javax.net.ssl.keyStorePassword", passwd); - System.setProperty("javax.net.ssl.trustStore", trustFilename); - System.setProperty("javax.net.ssl.trustStorePassword", passwd); - HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { - server = new HttpServer (new Test(), 1, 10, 0); - System.out.println ("Server started: listening on port: " + server.getLocalPort()); - // the test server doesn't support keep-alive yet - // test1("http://localhost:"+server.getLocalPort()+"/d0"); - test1("https://localhost:"+server.getLocalPort()+"/d01"); - test3("https://localhost:"+server.getLocalPort()+"/d3"); - test4("https://localhost:"+server.getLocalPort()+"/d4"); - test5("https://localhost:"+server.getLocalPort()+"/d5"); - test6("https://localhost:"+server.getLocalPort()+"/d6"); - test7("https://localhost:"+server.getLocalPort()+"/d7"); - test8("https://localhost:"+server.getLocalPort()+"/d8"); - } catch (Exception e) { - if (server != null) { - server.terminate(); + System.setProperty("javax.net.ssl.keyStore", keyFilename); + System.setProperty("javax.net.ssl.keyStorePassword", passwd); + System.setProperty("javax.net.ssl.trustStore", trustFilename); + System.setProperty("javax.net.ssl.trustStorePassword", passwd); + HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); + + try { + server = new HttpServer (new Test(), 1, 10, 0); + System.out.println ("Server started: listening on port: " + server.getLocalPort()); + // the test server doesn't support keep-alive yet + // test1("http://localhost:"+server.getLocalPort()+"/d0"); + test1("https://localhost:"+server.getLocalPort()+"/d01"); + test3("https://localhost:"+server.getLocalPort()+"/d3"); + test4("https://localhost:"+server.getLocalPort()+"/d4"); + test5("https://localhost:"+server.getLocalPort()+"/d5"); + test6("https://localhost:"+server.getLocalPort()+"/d6"); + test7("https://localhost:"+server.getLocalPort()+"/d7"); + test8("https://localhost:"+server.getLocalPort()+"/d8"); + } catch (Exception e) { + if (server != null) { + server.terminate(); + } + throw e; } - throw e; + server.terminate(); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - server.terminate(); } static class NameVerifier implements HostnameVerifier {
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, Oracle and/or its affiliates. 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 @@ -26,9 +26,12 @@ * @bug 6216082 * @library ../../../httpstest/ * @build HttpCallback HttpServer ClosedChannelList HttpTransaction TunnelProxy + * @summary Redirect problem with HttpsURLConnection using a proxy * @run main/othervm B6216082 - * @summary Redirect problem with HttpsURLConnection using a proxy -*/ + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. + */ import java.io.*; import java.net.*; @@ -46,20 +49,27 @@ static InetAddress firstNonLoAddress = null; public static void main(String[] args) throws Exception { - // XXX workaround for CNFE - Class.forName("java.nio.channels.ClosedByInterruptException"); - setupEnv(); + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + // XXX workaround for CNFE + Class.forName("java.nio.channels.ClosedByInterruptException"); + setupEnv(); - startHttpServer(); + startHttpServer(); - // https.proxyPort can only be set after the TunnelProxy has been - // created as it will use an ephemeral port. - System.setProperty( "https.proxyPort", (new Integer(proxy.getLocalPort())).toString() ); + // https.proxyPort can only be set after the TunnelProxy has been + // created as it will use an ephemeral port. + System.setProperty("https.proxyPort", + (new Integer(proxy.getLocalPort())).toString() ); - makeHttpCall(); + makeHttpCall(); - if (httpTrans.hasBadRequest) { - throw new RuntimeException("Test failed : bad http request"); + if (httpTrans.hasBadRequest) { + throw new RuntimeException("Test failed : bad http request"); + } + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2011, Oracle and/or its affiliates. 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 @@ -26,7 +26,10 @@ * @bug 6618387 * @summary SSL client sessions do not close cleanly. A TCP reset occurs * instead of a close_notify alert. - * @run main/othervm -Djavax.net.debug=ssl CloseKeepAliveCached + * @run main/othervm CloseKeepAliveCached + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * * @ignore * After run the test manually, at the end of the debug output, @@ -140,13 +143,15 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - /* * Wait for server to get started. */ while (!serverReady) { Thread.sleep(50); } + + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { HttpsURLConnection http = null; @@ -180,6 +185,8 @@ if (sslServerSocket != null) sslServerSocket.close(); throw ioex; + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -22,8 +22,12 @@ */ /* @test + * @bug 4696506 4942650 * @summary Unit test for java.net.CookieHandler - * @bug 4696506 4942650 + * @run main/othervm CookieHandlerTest + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Yingxian Wang */ @@ -182,26 +186,34 @@ System.getProperty("test.src", "./") + "/" + pathToStores + "/" + trustStoreFile; - System.setProperty("javax.net.ssl.keyStore", keyFilename); - System.setProperty("javax.net.ssl.keyStorePassword", passwd); - System.setProperty("javax.net.ssl.trustStore", trustFilename); - System.setProperty("javax.net.ssl.trustStorePassword", passwd); + CookieHandler reservedCookieHandler = CookieHandler.getDefault(); + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + System.setProperty("javax.net.ssl.keyStore", keyFilename); + System.setProperty("javax.net.ssl.keyStorePassword", passwd); + System.setProperty("javax.net.ssl.trustStore", trustFilename); + System.setProperty("javax.net.ssl.trustStorePassword", passwd); - if (debug) - System.setProperty("javax.net.debug", "all"); + if (debug) + System.setProperty("javax.net.debug", "all"); - /* - * Start the tests. - */ - cookies = new HashMap<String, String>(); - cookies.put("Cookie", - "$Version=\"1\"; Customer=\"WILE_E_COYOTE\"; $Path=\"/acme\""); - cookies.put("Set-Cookie2", - "$Version=\"1\"; Part_Number=\"Riding_Rocket_0023\"; " + - "$Path=\"/acme/ammo\"; Part_Number=\"Rocket_Launcher_0001\"; "+ - "$Path=\"/acme\""); - CookieHandler.setDefault(new MyCookieHandler()); - new CookieHandlerTest(); + /* + * Start the tests. + */ + cookies = new HashMap<String, String>(); + cookies.put("Cookie", + "$Version=\"1\"; Customer=\"WILE_E_COYOTE\"; $Path=\"/acme\""); + cookies.put("Set-Cookie2", + "$Version=\"1\"; Part_Number=\"Riding_Rocket_0023\"; " + + "$Path=\"/acme/ammo\"; Part_Number=\"Rocket_Launcher_0001\"; "+ + "$Path=\"/acme\""); + CookieHandler.setDefault(new MyCookieHandler()); + new CookieHandlerTest(); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); + CookieHandler.setDefault(reservedCookieHandler); + } } Thread clientThread = null;
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Fri Aug 12 12:26:31 2011 +0800 @@ -22,8 +22,12 @@ */ /* @test + * @bug 6766775 * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 - * @bug 6766775 + * @run main/othervm DNSIdentities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -691,34 +695,39 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); - SSLContext.setDefault(context); + SSLContext.setDefault(context); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - HttpsURLConnection http = null; + HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://localhost:" + serverPort+"/"); - System.out.println("url is "+url.toString()); + /* establish http connection to server */ + URL url = new URL("https://localhost:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - try { - http = (HttpsURLConnection)url.openConnection(); + try { + http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - System.out.println("respCode = "+respCode); + int respCode = http.getResponseCode(); + System.out.println("respCode = "+respCode); + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -24,7 +24,12 @@ /** * @test * @bug 6771432 - * @summary createSocket() - smpatch fails using 1.6.0_10 because of "Unconnected sockets not implemented" + * @summary createSocket() - smpatch fails using 1.6.0_10 because of + * "Unconnected sockets not implemented" + * @run main/othervm HttpsCreateSockTest + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import javax.net.SocketFactory;
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -26,6 +26,10 @@ * @bug 4423074 * @summary Need to rebase all the duplicated classes from Merlin. * This test will check out http POST + * @run main/othervm HttpsPost + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; @@ -140,34 +144,38 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } - - // Send HTTP POST request to server - URL url = new URL("https://localhost:"+serverPort); + // Send HTTP POST request to server + URL url = new URL("https://localhost:"+serverPort); - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); - http.setDoOutput(true); + HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); + HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); + http.setDoOutput(true); - http.setRequestMethod("POST"); - PrintStream ps = new PrintStream(http.getOutputStream()); - try { - ps.println(postMsg); - ps.flush(); - if (http.getResponseCode() != 200) { - throw new RuntimeException("test Failed"); + http.setRequestMethod("POST"); + PrintStream ps = new PrintStream(http.getOutputStream()); + try { + ps.println(postMsg); + ps.flush(); + if (http.getResponseCode() != 200) { + throw new RuntimeException("test Failed"); + } + } finally { + ps.close(); + http.disconnect(); + closeReady = true; } } finally { - ps.close(); - http.disconnect(); - closeReady = true; + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,9 @@ * @test * @bug 6670868 * @summary StackOverFlow with bad authenticated Proxy tunnels + * @run main/othervm HttpsProxyStackOverflow + * + * No way to reserve default Authenticator, need to run in othervm mode. */ import java.io.IOException;
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -26,6 +26,9 @@ * @bug 6614957 * @summary HttpsURLConnection not using the set SSLSocketFactory for creating all its Sockets * @run main/othervm HttpsSocketFacTest + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import javax.net.SocketFactory;
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, Oracle and/or its affiliates. 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 @@ -22,8 +22,12 @@ */ /* @test + * @bug 6766775 * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 - * @bug 6766775 + * @run main/othervm IPAddressDNSIdentities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -691,43 +695,48 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); - - SSLContext.setDefault(context); - - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } - - HttpsURLConnection http = null; - - /* establish http connection to server */ - URL url = new URL("https://127.0.0.1:" + serverPort+"/"); - System.out.println("url is "+url.toString()); - + SSLContext reservedSSLContext = SSLContext.getDefault(); try { - http = (HttpsURLConnection)url.openConnection(); + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); + + SSLContext.setDefault(context); - int respCode = http.getResponseCode(); - System.out.println("respCode = " + respCode); + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } + + HttpsURLConnection http = null; + + /* establish http connection to server */ + URL url = new URL("https://127.0.0.1:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - throw new Exception("Unexpectly found subject alternative name " + - "matching IP address"); - } catch (SSLHandshakeException sslhe) { - // no subject alternative names matching IP address 127.0.0.1 found - // that's the expected exception, ignore it. - } catch (IOException ioe) { - // HttpsClient may throw IOE during checking URL spoofing, - // that's the expected exception, ignore it. + try { + http = (HttpsURLConnection)url.openConnection(); + + int respCode = http.getResponseCode(); + System.out.println("respCode = " + respCode); + + throw new Exception("Unexpectly found " + + "subject alternative name matching IP address"); + } catch (SSLHandshakeException sslhe) { + // no subject alternative names matching IP address 127.0.0.1 + // found that's the expected exception, ignore it. + } catch (IOException ioe) { + // HttpsClient may throw IOE during checking URL spoofing, + // that's the expected exception, ignore it. + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, Oracle and/or its affiliates. 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 @@ -24,6 +24,10 @@ /* @test * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 * @bug 6766775 + * @run main/othervm IPAddressIPIdentities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -692,34 +696,39 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); - SSLContext.setDefault(context); + SSLContext.setDefault(context); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - HttpsURLConnection http = null; + HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://127.0.0.1:" + serverPort+"/"); - System.out.println("url is "+url.toString()); + /* establish http connection to server */ + URL url = new URL("https://127.0.0.1:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - try { - http = (HttpsURLConnection)url.openConnection(); + try { + http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - System.out.println("respCode = "+respCode); + int respCode = http.getResponseCode(); + System.out.println("respCode = "+respCode); + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, Oracle and/or its affiliates. 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 @@ -24,6 +24,10 @@ /* @test * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 * @bug 6766775 + * @run main/othervm IPIdentities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -692,34 +696,38 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); - - SSLContext.setDefault(context); + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); + SSLContext.setDefault(context); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - HttpsURLConnection http = null; + HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://localhost:" + serverPort+"/"); - System.out.println("url is "+url.toString()); + /* establish http connection to server */ + URL url = new URL("https://localhost:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - try { - http = (HttpsURLConnection)url.openConnection(); + try { + http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - System.out.println("respCode = "+respCode); + int respCode = http.getResponseCode(); + System.out.println("respCode = "+respCode); + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, Oracle and/or its affiliates. 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 @@ -22,8 +22,12 @@ */ /* @test + * @bug 6766775 * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 - * @bug 6766775 + * @run main/othervm Identities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -691,34 +695,39 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); - SSLContext.setDefault(context); + SSLContext.setDefault(context); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - HttpsURLConnection http = null; + HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://localhost:" + serverPort+"/"); - System.out.println("url is "+url.toString()); + /* establish http connection to server */ + URL url = new URL("https://localhost:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - try { - http = (HttpsURLConnection)url.openConnection(); + try { + http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - System.out.println("respCode = "+respCode); + int respCode = http.getResponseCode(); + System.out.println("respCode = "+respCode); + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -147,44 +147,50 @@ static String postMsg = "Testing HTTP post on a https server"; static void doClientSide(String hostname) throws Exception { - /* - * setup up a proxy - */ - setupProxy(); - - /* - * we want to avoid URLspoofCheck failures in cases where the cert - * DN name does not match the hostname in the URL. - */ - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - URL url = new URL("https://" + hostname+ ":" + serverPort); - - HttpsURLConnection https = (HttpsURLConnection)url.openConnection(); - https.setDoOutput(true); - https.setRequestMethod("POST"); - PrintStream ps = null; + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { - ps = new PrintStream(https.getOutputStream()); - ps.println(postMsg); - ps.flush(); - if (https.getResponseCode() != 200) { - throw new RuntimeException("test Failed"); - } - ps.close(); + /* + * setup up a proxy + */ + setupProxy(); + + /* + * we want to avoid URLspoofCheck failures in cases where the cert + * DN name does not match the hostname in the URL. + */ + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + URL url = new URL("https://" + hostname+ ":" + serverPort); - // clear the pipe - BufferedReader in = new BufferedReader( - new InputStreamReader( - https.getInputStream())); - String inputLine; - while ((inputLine = in.readLine()) != null) - System.out.println("Client received: " + inputLine); - in.close(); - } catch (SSLException e) { - if (ps != null) - ps.close(); - throw e; + HttpsURLConnection https = (HttpsURLConnection)url.openConnection(); + https.setDoOutput(true); + https.setRequestMethod("POST"); + PrintStream ps = null; + try { + ps = new PrintStream(https.getOutputStream()); + ps.println(postMsg); + ps.flush(); + if (https.getResponseCode() != 200) { + throw new RuntimeException("test Failed"); + } + ps.close(); + + // clear the pipe + BufferedReader in = new BufferedReader( + new InputStreamReader( + https.getInputStream())); + String inputLine; + while ((inputLine = in.readLine()) != null) + System.out.println("Client received: " + inputLine); + in.close(); + } catch (SSLException e) { + if (ps != null) + ps.close(); + throw e; + } + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. 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 @@ -24,7 +24,13 @@ /* * @test * @bug 4811482 4700777 4905410 - * @summary sun.net.client.defaultConnectTimeout should work with HttpsURLConnection; HTTP client: Connect and read timeouts; Https needs to support new tiger features that went into http + * @summary sun.net.client.defaultConnectTimeout should work with + * HttpsURLConnection; HTTP client: Connect and read timeouts; + * Https needs to support new tiger features that went into http + * @run main/othervm ReadTimeout + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; @@ -143,44 +149,48 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } + HttpsURLConnection http = null; + try { + URL url = new URL("https://localhost:"+serverPort); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } - HttpsURLConnection http = null; - try { - URL url = new URL("https://localhost:"+serverPort); - - // set read timeout through system property - System.setProperty("sun.net.client.defaultReadTimeout", "2000"); - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - http = (HttpsURLConnection)url.openConnection(); + // set read timeout through system property + System.setProperty("sun.net.client.defaultReadTimeout", "2000"); + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + http = (HttpsURLConnection)url.openConnection(); - InputStream is = http.getInputStream (); - } catch (SocketTimeoutException stex) { - done(); - http.disconnect(); - } + InputStream is = http.getInputStream (); + } catch (SocketTimeoutException stex) { + done(); + http.disconnect(); + } - try { - URL url = new URL("https://localhost:"+serverPort); + try { + URL url = new URL("https://localhost:"+serverPort); - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - http = (HttpsURLConnection)url.openConnection(); - // set read timeout through API - http.setReadTimeout(2000); + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + http = (HttpsURLConnection)url.openConnection(); + // set read timeout through API + http.setReadTimeout(2000); - InputStream is = http.getInputStream (); - } catch (SocketTimeoutException stex) { - done(); - http.disconnect(); + InputStream is = http.getInputStream (); + } catch (SocketTimeoutException stex) { + done(); + http.disconnect(); + } + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - } static class NameVerifier implements HostnameVerifier {
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -26,6 +26,10 @@ * @bug 4423074 * @summary Need to rebase all the duplicated classes from Merlin. * This test will check out http POST + * @run main/othervm Redirect + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; @@ -139,28 +143,33 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - // Send HTTP POST request to server - URL url = new URL("https://localhost:"+serverPort); + // Send HTTP POST request to server + URL url = new URL("https://localhost:"+serverPort); - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); - try { - System.out.println("response header: "+http.getHeaderField(0)); - if (http.getResponseCode() != 200) { - throw new RuntimeException("test Failed"); + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); + try { + System.out.println("response header: "+http.getHeaderField(0)); + if (http.getResponseCode() != 200) { + throw new RuntimeException("test Failed"); + } + } finally { + http.disconnect(); + closeReady = true; } } finally { - http.disconnect(); - closeReady = true; + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. 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 @@ -22,8 +22,12 @@ */ /* @test + * @bug 4799427 * @summary Https can not retry request - * @bug 4799427 + * @run main/othervm RetryHttps + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Yingxian Wang */ @@ -129,36 +133,41 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { - HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://localhost:" + serverPort+"/file1"); - System.out.println("url is "+url.toString()); - HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - int cl = http.getContentLength(); - InputStream is = http.getInputStream (); - int count = 0; - while (is.read() != -1 && count++ < cl); - System.out.println("respCode1 = "+respCode); - Thread.sleep(2000); - url = new URL("https://localhost:" + serverPort+"/file2"); - http = (HttpsURLConnection)url.openConnection(); - respCode = http.getResponseCode(); - System.out.println("respCode2 = "+respCode); - - } catch (IOException ioex) { - if (sslServerSocket != null) - sslServerSocket.close(); - throw ioex; + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } + try { + HttpsURLConnection http = null; + /* establish http connection to server */ + URL url = new URL("https://localhost:" + serverPort+"/file1"); + System.out.println("url is "+url.toString()); + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + http = (HttpsURLConnection)url.openConnection(); + int respCode = http.getResponseCode(); + int cl = http.getContentLength(); + InputStream is = http.getInputStream (); + int count = 0; + while (is.read() != -1 && count++ < cl); + System.out.println("respCode1 = "+respCode); + Thread.sleep(2000); + url = new URL("https://localhost:" + serverPort+"/file2"); + http = (HttpsURLConnection)url.openConnection(); + respCode = http.getResponseCode(); + System.out.println("respCode2 = "+respCode); + } catch (IOException ioex) { + if (sslServerSocket != null) + sslServerSocket.close(); + throw ioex; + } + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } }
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -25,6 +25,10 @@ * @test * @bug 4474255 * @summary Can no longer obtain a com.sun.net.ssl.HttpsURLConnection + * @run main/othervm ComHTTPSConnection + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */ @@ -198,44 +202,50 @@ Thread.sleep(50); } - System.setProperty("java.protocol.handler.pkgs", - "com.sun.net.ssl.internal.www.protocol"); - HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - - URL url = new URL("https://" + "localhost:" + serverPort + - "/etc/hosts"); - URLConnection urlc = url.openConnection(); - - if (!(urlc instanceof com.sun.net.ssl.HttpsURLConnection)) { - throw new Exception( - "URLConnection ! instanceof " + - "com.sun.net.ssl.HttpsURLConnection"); - } + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + System.setProperty("java.protocol.handler.pkgs", + "com.sun.net.ssl.internal.www.protocol"); + HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - BufferedReader in = null; - try { - in = new BufferedReader(new InputStreamReader( - urlc.getInputStream())); - String inputLine; - System.out.print("Client reading... "); - while ((inputLine = in.readLine()) != null) - System.out.println(inputLine); + URL url = new URL("https://" + "localhost:" + serverPort + + "/etc/hosts"); + URLConnection urlc = url.openConnection(); - System.out.println("Cipher Suite: " + - ((HttpsURLConnection)urlc).getCipherSuite()); - X509Certificate[] certs = - ((HttpsURLConnection)urlc).getServerCertificateChain(); - for (int i = 0; i < certs.length; i++) { - System.out.println(certs[0]); + if (!(urlc instanceof com.sun.net.ssl.HttpsURLConnection)) { + throw new Exception( + "URLConnection ! instanceof " + + "com.sun.net.ssl.HttpsURLConnection"); } - in.close(); - } catch (SSLException e) { - if (in != null) + BufferedReader in = null; + try { + in = new BufferedReader(new InputStreamReader( + urlc.getInputStream())); + String inputLine; + System.out.print("Client reading... "); + while ((inputLine = in.readLine()) != null) + System.out.println(inputLine); + + System.out.println("Cipher Suite: " + + ((HttpsURLConnection)urlc).getCipherSuite()); + X509Certificate[] certs = + ((HttpsURLConnection)urlc).getServerCertificateChain(); + for (int i = 0; i < certs.length; i++) { + System.out.println(certs[0]); + } + in.close(); - throw e; + } catch (SSLException e) { + if (in != null) + in.close(); + throw e; + } + System.out.println("Client reports: SUCCESS"); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - System.out.println("Client reports: SUCCESS"); } static class NameVerifier implements HostnameVerifier {
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java Fri Aug 12 12:26:31 2011 +0800 @@ -28,6 +28,10 @@ * @bug 4484246 * @summary When an application enables anonymous SSL cipher suite, * Hostname verification is not required + * @run main/othervm ComHostnameVerifier + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java Fri Aug 12 12:26:31 2011 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. 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 @@ -25,6 +25,10 @@ * @test * @bug 4474255 * @summary Can no longer obtain a com.sun.net.ssl.HttpsURLConnection + * @run main/othervm JavaxHTTPSConnection + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */ @@ -189,47 +193,53 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } - - HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - URL url = new URL("https://" + "localhost:" + serverPort + - "/etc/hosts"); - URLConnection urlc = url.openConnection(); + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - if (!(urlc instanceof javax.net.ssl.HttpsURLConnection)) { - throw new Exception( - "URLConnection ! instanceof javax.net.ssl.HttpsURLConnection"); - } + HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); + URL url = new URL("https://" + "localhost:" + serverPort + + "/etc/hosts"); + URLConnection urlc = url.openConnection(); - BufferedReader in = null; - try { - in = new BufferedReader(new InputStreamReader( - urlc.getInputStream())); - String inputLine; - System.out.print("Client reading... "); - while ((inputLine = in.readLine()) != null) - System.out.println(inputLine); - - System.out.println("Cipher Suite: " + - ((HttpsURLConnection)urlc).getCipherSuite()); - Certificate[] certs = - ((HttpsURLConnection)urlc).getServerCertificates(); - for (int i = 0; i < certs.length; i++) { - System.out.println(certs[0]); + if (!(urlc instanceof javax.net.ssl.HttpsURLConnection)) { + throw new Exception("URLConnection ! instanceof " + + "javax.net.ssl.HttpsURLConnection"); } - in.close(); - } catch (SSLException e) { - if (in != null) + BufferedReader in = null; + try { + in = new BufferedReader(new InputStreamReader( + urlc.getInputStream())); + String inputLine; + System.out.print("Client reading... "); + while ((inputLine = in.readLine()) != null) + System.out.println(inputLine); + + System.out.println("Cipher Suite: " + + ((HttpsURLConnection)urlc).getCipherSuite()); + Certificate[] certs = + ((HttpsURLConnection)urlc).getServerCertificates(); + for (int i = 0; i < certs.length; i++) { + System.out.println(certs[0]); + } + in.close(); - throw e; + } catch (SSLException e) { + if (in != null) + in.close(); + throw e; + } + System.out.println("Client reports: SUCCESS"); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - System.out.println("Client reports: SUCCESS"); } static class NameVerifier implements HostnameVerifier {
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java Fri Aug 12 12:26:31 2011 +0800 @@ -28,6 +28,10 @@ * @bug 4484246 * @summary When an application enables anonymous SSL cipher suite, * Hostname verification is not required + * @run main/othervm JavaxHostnameVerifier + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*;
--- a/jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,7 +25,10 @@ * @test * @bug 1234567 * @summary SSLEngine has not yet caused Solaris kernel to panic + * @run main/othervm SSLEngineTemplate * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ /**
--- a/jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java Fri Aug 12 12:26:31 2011 +0800 @@ -25,6 +25,10 @@ * @test * @bug 1234567 * @summary Use this template to help speed your client/server tests. + * @run main/othervm SSLSocketTemplate + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */
--- a/jdk/test/sun/security/tools/keytool/StartDateTest.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/tools/keytool/StartDateTest.java Fri Aug 12 12:26:31 2011 +0800 @@ -132,7 +132,9 @@ static Date getIssueDate() throws Exception { KeyStore ks = KeyStore.getInstance("jks"); - ks.load(new FileInputStream("jks"), "changeit".toCharArray()); + try (FileInputStream fis = new FileInputStream("jks")) { + ks.load(fis, "changeit".toCharArray()); + } X509Certificate cert = (X509Certificate)ks.getCertificate("me"); return cert.getNotBefore(); }
--- a/jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java Fri Aug 12 11:20:45 2011 +0800 +++ b/jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java Fri Aug 12 12:26:31 2011 +0800 @@ -24,9 +24,12 @@ /* * @test * @bug 4162868 + * @run main/othervm ExtensibleAlgorithmId * @summary Algorithm Name-to-OID mapping needs to be made extensible. */ +// Run in othervm, coz AlgorithmId.oidTable is only initialized once + import java.security.*; import sun.security.x509.AlgorithmId;