diff -r e51c07113d09 -r 826c03991926 jdk/test/java/io/OutputStreamWriter/Encode.java --- a/jdk/test/java/io/OutputStreamWriter/Encode.java Tue Mar 01 12:03:44 2011 +0000 +++ b/jdk/test/java/io/OutputStreamWriter/Encode.java Tue Mar 01 15:05:32 2011 -0800 @@ -35,8 +35,9 @@ new Encode(); } + final ServerSocket ss = new ServerSocket(0); + Encode() throws Exception { - ss = new ServerSocket(0); (new Thread(this)).start(); String toEncode = "\uD800\uDC00 \uD801\uDC01 "; String enc1 = URLEncoder.encode(toEncode, "UTF-8"); @@ -47,27 +48,31 @@ "/missing.nothtml"; HttpURLConnection uc = (HttpURLConnection)new URL(url).openConnection(); uc.connect(); - String enc2 = URLEncoder.encode(toEncode, "UTF-8"); - if (!enc1.equals(enc2)) - throw new RuntimeException("test failed"); - uc.disconnect(); + try { + String enc2 = URLEncoder.encode(toEncode, "UTF-8"); + if (!enc1.equals(enc2)) { + System.out.println("test failed"); + throw new RuntimeException("test failed"); + } + } finally { + uc.disconnect(); + } } - ServerSocket ss; - public void run() { - try { - Socket s = ss.accept(); - BufferedReader in = new BufferedReader( - new InputStreamReader(s.getInputStream())); + try (ServerSocket serv = ss; + Socket s = serv.accept(); + BufferedReader in = + new BufferedReader(new InputStreamReader(s.getInputStream()))) + { String req = in.readLine(); - PrintStream out = new PrintStream(new BufferedOutputStream( - s.getOutputStream())); - out.print("HTTP/1.1 403 Forbidden\r\n"); - out.print("\r\n"); - out.flush(); - s.close(); - ss.close(); + try (OutputStream os = s.getOutputStream(); + BufferedOutputStream bos = new BufferedOutputStream(os); + PrintStream out = new PrintStream(bos)) + { + out.print("HTTP/1.1 403 Forbidden\r\n"); + out.print("\r\n"); + } } catch (Exception e) { e.printStackTrace(); }