From 0b14a74585a09dea30cdeee4c99ddae230c38250 Mon Sep 17 00:00:00 2001 From: xuelei Date: Tue, 4 Sep 2012 02:24:51 -0700 Subject: [PATCH] 7195733: TEST_BUG: sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java failing Reviewed-by: chegar, alanb, xuelei Contributed-by: Eric Wang --- .../https/HttpsURLConnection/B6216082.java | 74 +++++++++---------- 1 file changed, 33 insertions(+), 41 deletions(-) diff --git a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java index 37b6341d3..85ac5cb5a 100644 --- a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java +++ b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2012, 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,10 +27,9 @@ * @library ../../../httpstest/ * @build HttpCallback HttpServer ClosedChannelList HttpTransaction TunnelProxy * @summary Redirect problem with HttpsURLConnection using a proxy - * @run main/othervm B6216082 - * * SunJSSE does not support dynamic system properties, no way to re-use * system properties in samevm/agentvm mode. + * @run main/othervm B6216082 */ import java.io.*; @@ -54,7 +53,9 @@ public class B6216082 { try { // XXX workaround for CNFE Class.forName("java.nio.channels.ClosedByInterruptException"); - setupEnv(); + if (!setupEnv()) { + return; + } startHttpServer(); @@ -69,6 +70,12 @@ public class B6216082 { throw new RuntimeException("Test failed : bad http request"); } } finally { + if (proxy != null) { + proxy.terminate(); + } + if (server != null) { + server.terminate(); + } HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } } @@ -80,18 +87,13 @@ public class B6216082 { static String keyStoreFile = "keystore"; static String trustStoreFile = "truststore"; static String passwd = "passphrase"; - public static void setupEnv() { - try { - firstNonLoAddress = getNonLoAddress(); - - if (firstNonLoAddress == null) { - System.out.println("The test needs at least one non-loopback address to run. Quit now."); - System.exit(0); - } - System.out.println(firstNonLoAddress.getHostAddress()); - } catch (Exception e) { - e.printStackTrace(); + public static boolean setupEnv() throws Exception { + firstNonLoAddress = getNonLoAddress(); + if (firstNonLoAddress == null) { + System.err.println("The test needs at least one non-loopback address to run. Quit now."); + return false; } + System.out.println(firstNonLoAddress.getHostAddress()); // will use proxy System.setProperty( "https.proxyHost", firstNonLoAddress.getHostAddress()); @@ -106,6 +108,7 @@ public class B6216082 { System.setProperty("javax.net.ssl.trustStore", trustFilename); System.setProperty("javax.net.ssl.trustStorePassword", passwd); HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); + return true; } public static InetAddress getNonLoAddress() throws Exception { @@ -126,33 +129,22 @@ public class B6216082 { return null; } - public static void startHttpServer() { - try { - // Both the https server and the proxy let the - // system pick up an ephemeral port. - httpTrans = new SimpleHttpTransaction(); - server = new HttpServer(httpTrans, 1, 10, 0); - proxy = new TunnelProxy(1, 10, 0); - } catch (IOException e) { - e.printStackTrace(); - } + public static void startHttpServer() throws IOException { + // Both the https server and the proxy let the + // system pick up an ephemeral port. + httpTrans = new SimpleHttpTransaction(); + server = new HttpServer(httpTrans, 1, 10, 0); + proxy = new TunnelProxy(1, 10, 0); } - public static void makeHttpCall() { - try { - System.out.println("https server listen on: " + server.getLocalPort()); - System.out.println("https proxy listen on: " + proxy.getLocalPort()); - URL url = new URL("https" , firstNonLoAddress.getHostAddress(), - server.getLocalPort(), "/"); - HttpURLConnection uc = (HttpURLConnection)url.openConnection(); - System.out.println(uc.getResponseCode()); - uc.disconnect(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - proxy.terminate(); - server.terminate(); - } + public static void makeHttpCall() throws Exception { + System.out.println("https server listen on: " + server.getLocalPort()); + System.out.println("https proxy listen on: " + proxy.getLocalPort()); + URL url = new URL("https" , firstNonLoAddress.getHostAddress(), + server.getLocalPort(), "/"); + HttpURLConnection uc = (HttpURLConnection)url.openConnection(); + System.out.println(uc.getResponseCode()); + uc.disconnect(); } static class NameVerifier implements HostnameVerifier { @@ -189,7 +181,7 @@ class SimpleHttpTransaction implements HttpCallback { } } } catch (Exception e) { - e.printStackTrace(); + throw new RuntimeException(e); } } } -- GitLab