--- a/jdk/test/ProblemList.txt Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/ProblemList.txt Wed Jul 21 13:29:26 2010 +0100
@@ -369,139 +369,6 @@
# jdk_net
-# Suspect many of these tests auffer from using fixed ports, no concrete
-# evidence.
-
-# Times out on Windows X64
-sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java generic-all
-
-# Dies on Solaris 10 sparc and sparcv9, Linux -ea -esa with
-# Interrupted or IO exception, maybe writing to non-unique named file?
-com/sun/net/httpserver/bugs/B6373555.java generic-all
-
-# Fails on OpenSolaris, times out
-java/net/MulticastSocket/SetOutgoingIf.java generic-all
-
-# Timed out on Solaris 10 X86.
-com/sun/net/httpserver/Test3.java generic-all
-
-# Exception in test on windows
-com/sun/net/httpserver/bugs/B6373555.java windows-all
-
-# One of these pollutes the samevm on Linux, too many open files, kills jtreg
-com/sun/net/httpserver/bugs/B6339483.java generic-all
-com/sun/net/httpserver/bugs/B6341616.java generic-all
-
-# Suspects in cascading samevm problem, solaris 11 i586 (needs othervm?)
-# Suspect use of setHttps*()?
-com/sun/net/httpserver/SelCacheTest.java generic-all
-com/sun/net/httpserver/Test1.java generic-all
-com/sun/net/httpserver/Test12.java generic-all
-com/sun/net/httpserver/Test13.java generic-all
-com/sun/net/httpserver/Test6a.java generic-all
-com/sun/net/httpserver/Test7a.java generic-all
-com/sun/net/httpserver/Test8a.java generic-all
-com/sun/net/httpserver/Test9.java generic-all
-com/sun/net/httpserver/Test9a.java generic-all
-
-# 10,000 connections, fails on Linux and makes tests&jtreg fail with samevm
-com/sun/net/httpserver/bugs/B6361557.java generic-all
-
-# Address already in use with samevm? Always? Solaris sparc, probably ports
-java/net/Authenticator/B4933582.sh generic-all
-java/net/DatagramSocket/SendSize.java generic-all
-
-# Solaris 11: exception wrong address???
-java/net/Inet6Address/B6558853.java generic-all
-
-# Not closing stream on file i6a1, windows samevm problem
-java/net/Inet6Address/serialize/Serialize.java generic-all
-
-# Linux x64 fails "network unreachable"?
-java/net/ipv6tests/TcpTest.java generic-all
-
-# Linux i586, fails with unexpected output
-java/net/MulticastSocket/NoLoopbackPackets.java linux-i586
-
-# Address already in use
-java/net/DatagramSocket/DatagramTimeout.java generic-all
-
-# Fails on windows, takes too long and fails
-# Solaris 10 sparcv9, samevm, java.lang.Exception: Takes too long. Dead lock
-java/net/Socket/DeadlockTest.java generic-all
-
-# Linux i586 address already in use or connection error, samevm issues
-java/net/Socket/AccurateTimeout.java generic-all
-java/net/Socket/asyncClose/BrokenPipe.java generic-all
-java/net/Socket/CloseAvailable.java generic-all
-
-# Linux X64 address already in use, samevm issues
-java/net/Socket/LingerTest.java generic-all
-java/net/Socket/LinkLocal.java generic-all
-java/net/Socket/NullHost.java generic-all
-java/net/Socket/ProxyCons.java generic-all
-java/net/Socket/ReadTimeout.java generic-all
-
-# Linux X64 address already in use, samevm issues
-java/net/Socket/SetReceiveBufferSize.java generic-all
-
-# Linux i586 address already in use or connection error, samevm issues
-java/net/Socket/setReuseAddress/Basic.java generic-all
-java/net/Socket/setReuseAddress/Restart.java generic-all
-
-# Linux X64 address already in use, samevm issues
-java/net/Socket/SetSoLinger.java generic-all
-
-# Address already in use, windows samevm
-java/net/Socket/Timeout.java generic-all
-
-# Linux X64 address already in use, samevm issues
-java/net/Socket/ShutdownBoth.java generic-all
-java/net/Socket/SoTimeout.java generic-all
-java/net/Socket/TestClose.java generic-all
-java/net/Socket/UrgentDataTest.java generic-all
-java/net/SocketInputStream/SocketClosedException.java generic-all
-java/net/SocketInputStream/SocketTimeout.java generic-all
-
-# Linux i586, address already in use or timeout, samevm issues
-java/net/URLConnection/DisconnectAfterEOF.java generic-all
-java/net/URLConnection/HandleContentTypeWithAttrs.java generic-all
-java/net/URLConnection/Responses.java generic-all
-java/net/URLConnection/TimeoutTest.java generic-all
-java/net/URLConnection/ZeroContentLength.java generic-all
-
-# Solaris 11 i586 fails with samevm, not sure why
-java/net/ResponseCache/B6181108.java generic-all
-java/net/ResponseCache/ResponseCacheTest.java generic-all
-java/net/URL/GetContent.java generic-all
-java/net/URLConnection/HttpContinueStackOverflow.java generic-all
-java/net/URLConnection/Redirect307Test.java generic-all
-java/net/URLConnection/RedirectLimit.java generic-all
-java/net/URLConnection/ResendPostBody.java generic-all
-java/net/URL/OpenStream.java generic-all
-java/net/URLClassLoader/ClassLoad.java generic-all
-java/net/URLConnection/SetIfModifiedSince.java generic-all
-java/net/URLConnection/URLConnectionHeaders.java generic-all
-
-# Linux i586 Connection refused or address already in use, samevm issues
-sun/net/ftp/B6427768.java generic-all
-sun/net/ftp/FtpGetContent.java generic-all
-sun/net/ftp/FtpURL.java generic-all
-
-# Failed on solaris 10 i586, Exception: should have gotten HttpRetryException?
-sun/net/www/http/ChunkedOutputStream/Test.java generic-all
-
-# Trouble cleaning up threads in samevm mode on solaris 11 i586
-sun/net/www/http/HttpClient/ProxyTest.java generic-all
-sun/net/www/http/ChunkedInputStream/ChunkedEncodingTest.java generic-all
-sun/net/www/http/ChunkedInputStream/ChunkedEncodingWithProgressMonitorTest.java generic-all
-sun/net/www/http/HttpClient/B6726695.java generic-all
-sun/net/www/http/HttpClient/MultiThreadTest.java generic-all
-sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java generic-all
-
-# Connection refused, windows samevm
-sun/net/www/protocol/http/DigestTest.java generic-all
-
############################################################################
# jdk_io
--- a/jdk/test/com/sun/net/httpserver/Test1.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test1.java Wed Jul 21 13:29:26 2010 +0100
@@ -24,17 +24,15 @@
/**
* @test
* @bug 6270015
+ * @run main/othervm Test1
* @summary Light weight HTTP server
*/
import com.sun.net.httpserver.*;
-import java.util.*;
import java.util.concurrent.*;
import java.io.*;
import java.net.*;
-import java.security.*;
-import java.security.cert.*;
import javax.net.ssl.*;
/* basic http/s connectivity test
--- a/jdk/test/com/sun/net/httpserver/Test11.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test11.java Wed Jul 21 13:29:26 2010 +0100
@@ -28,7 +28,6 @@
*/
import java.net.*;
-import java.util.*;
import java.util.concurrent.*;
import java.io.*;
import com.sun.net.httpserver.*;
@@ -52,22 +51,25 @@
public static void main (String[] args) throws Exception {
System.out.print ("Test 11: ");
- HttpServer server = HttpServer.create (new InetSocketAddress(0), 0);
- HttpContext ctx = server.createContext (
- "/foo/bar/", new Handler ()
- );
- ExecutorService s = Executors.newCachedThreadPool();
- server.setExecutor (s);
- server.start ();
- URL url = new URL ("http://localhost:" + server.getAddress().getPort()+
- "/Foo/bar/test.html");
- HttpURLConnection urlc = (HttpURLConnection)url.openConnection();
- int r = urlc.getResponseCode();
- System.out.println ("OK");
- s.shutdown();
- server.stop(5);
- if (r == 200) {
- throw new RuntimeException ("wrong response received");
+ HttpServer server = HttpServer.create(new InetSocketAddress(0), 0);
+ ExecutorService s = Executors.newCachedThreadPool();
+ try {
+ HttpContext ctx = server.createContext (
+ "/foo/bar/", new Handler ()
+ );
+ s = Executors.newCachedThreadPool();
+ server.start ();
+ URL url = new URL ("http://localhost:" + server.getAddress().getPort()+
+ "/Foo/bar/test.html");
+ HttpURLConnection urlc = (HttpURLConnection)url.openConnection();
+ int r = urlc.getResponseCode();
+ if (r == 200) {
+ throw new RuntimeException ("wrong response received");
+ }
+ System.out.println ("OK");
+ } finally {
+ s.shutdown();
+ server.stop(2);
}
}
}
--- a/jdk/test/com/sun/net/httpserver/Test12.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test12.java Wed Jul 21 13:29:26 2010 +0100
@@ -24,17 +24,15 @@
/**
* @test
* @bug 6270015
+ * @run main/othervm Test12
* @summary Light weight HTTP server
*/
import com.sun.net.httpserver.*;
-import java.util.*;
import java.util.concurrent.*;
import java.io.*;
import java.net.*;
-import java.security.*;
-import java.security.cert.*;
import javax.net.ssl.*;
/* basic http/s connectivity test
--- a/jdk/test/com/sun/net/httpserver/Test13.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test13.java Wed Jul 21 13:29:26 2010 +0100
@@ -24,17 +24,16 @@
/**
* @test
* @bug 6270015
+ * @run main/othervm Test13
* @summary Light weight HTTP server
*/
import com.sun.net.httpserver.*;
-import java.util.*;
import java.util.concurrent.*;
import java.io.*;
import java.net.*;
-import java.security.*;
-import java.security.cert.*;
+
import javax.net.ssl.*;
/* basic http/s connectivity test
--- a/jdk/test/com/sun/net/httpserver/Test6a.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test6a.java Wed Jul 21 13:29:26 2010 +0100
@@ -24,17 +24,15 @@
/**
* @test
* @bug 6270015
+ * @run main/othervm Test6a
* @summary Light weight HTTP server
*/
import com.sun.net.httpserver.*;
-import java.util.*;
import java.util.concurrent.*;
import java.io.*;
import java.net.*;
-import java.security.*;
-import javax.security.auth.callback.*;
import javax.net.ssl.*;
/**
--- a/jdk/test/com/sun/net/httpserver/Test7a.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test7a.java Wed Jul 21 13:29:26 2010 +0100
@@ -24,18 +24,15 @@
/**
* @test
* @bug 6270015
+ * @run main/othervm Test7a
* @summary Light weight HTTP server
*/
import com.sun.net.httpserver.*;
-import java.util.*;
import java.util.concurrent.*;
-import java.util.logging.*;
import java.io.*;
import java.net.*;
-import java.security.*;
-import javax.security.auth.callback.*;
import javax.net.ssl.*;
/**
--- a/jdk/test/com/sun/net/httpserver/Test8a.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test8a.java Wed Jul 21 13:29:26 2010 +0100
@@ -24,18 +24,15 @@
/**
* @test
* @bug 6270015
+ * @run main/othervm Test8a
* @summary Light weight HTTP server
*/
import com.sun.net.httpserver.*;
-import java.util.*;
import java.util.concurrent.*;
-import java.util.logging.*;
import java.io.*;
import java.net.*;
-import java.security.*;
-import javax.security.auth.callback.*;
import javax.net.ssl.*;
/**
@@ -50,46 +47,50 @@
//h.setLevel (Level.INFO);
//log.addHandler (h);
//log.setLevel (Level.INFO);
- Handler handler = new Handler();
- InetSocketAddress addr = new InetSocketAddress (0);
- HttpsServer server = HttpsServer.create (addr, 0);
- HttpContext ctx = server.createContext ("/test", handler);
- ExecutorService executor = Executors.newCachedThreadPool();
- SSLContext ssl = new SimpleSSLContext(System.getProperty("test.src")).get();
- server.setHttpsConfigurator(new HttpsConfigurator (ssl));
- server.setExecutor (executor);
- server.start ();
+ HttpsServer server = null;
+ ExecutorService executor = null;
+ try {
+ Handler handler = new Handler();
+ InetSocketAddress addr = new InetSocketAddress (0);
+ server = HttpsServer.create (addr, 0);
+ HttpContext ctx = server.createContext ("/test", handler);
+ executor = Executors.newCachedThreadPool();
+ SSLContext ssl = new SimpleSSLContext(System.getProperty("test.src")).get();
+ server.setHttpsConfigurator(new HttpsConfigurator (ssl));
+ server.setExecutor (executor);
+ server.start ();
- URL url = new URL ("https://localhost:"+server.getAddress().getPort()+"/test/foo.html");
- System.out.print ("Test8a: " );
- HttpsURLConnection urlc = (HttpsURLConnection)url.openConnection ();
- urlc.setDoOutput (true);
- urlc.setRequestMethod ("POST");
- urlc.setHostnameVerifier (new DummyVerifier());
- urlc.setSSLSocketFactory (ssl.getSocketFactory());
- OutputStream os = new BufferedOutputStream (urlc.getOutputStream(), 8000);
- for (int i=0; i<SIZE; i++) {
- os.write (i % 250);
+ URL url = new URL ("https://localhost:"+server.getAddress().getPort()+"/test/foo.html");
+ System.out.print ("Test8a: " );
+ HttpsURLConnection urlc = (HttpsURLConnection)url.openConnection ();
+ urlc.setDoOutput (true);
+ urlc.setRequestMethod ("POST");
+ urlc.setHostnameVerifier (new DummyVerifier());
+ urlc.setSSLSocketFactory (ssl.getSocketFactory());
+ OutputStream os = new BufferedOutputStream (urlc.getOutputStream(), 8000);
+ for (int i=0; i<SIZE; i++) {
+ os.write (i % 250);
+ }
+ os.close();
+ int resp = urlc.getResponseCode();
+ if (resp != 200) {
+ throw new RuntimeException ("test failed response code");
+ }
+ InputStream is = urlc.getInputStream ();
+ for (int i=0; i<SIZE; i++) {
+ int f = is.read();
+ if (f != (i % 250)) {
+ System.out.println ("Setting error(" +f +")("+i+")" );
+ error = true;
+ break;
+ }
+ }
+ is.close();
+ } finally {
+ delay();
+ if (server != null) server.stop(2);
+ if (executor != null) executor.shutdown();
}
- os.close();
- int resp = urlc.getResponseCode();
- if (resp != 200) {
- throw new RuntimeException ("test failed response code");
- }
- InputStream is = urlc.getInputStream ();
- for (int i=0; i<SIZE; i++) {
- int f = is.read();
- if (f != (i % 250)) {
- System.out.println ("Setting error(" +f +")("+i+")" );
- error = true;
- break;
- }
- }
- is.close();
-
- delay();
- server.stop(2);
- executor.shutdown();
if (error) {
throw new RuntimeException ("test failed error");
}
--- a/jdk/test/com/sun/net/httpserver/Test9.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test9.java Wed Jul 21 13:29:26 2010 +0100
@@ -24,17 +24,15 @@
/**
* @test
* @bug 6270015
+ * @run main/othervm Test9
* @summary Light weight HTTP server
*/
import com.sun.net.httpserver.*;
-import java.util.*;
import java.util.concurrent.*;
import java.io.*;
import java.net.*;
-import java.security.*;
-import java.security.cert.*;
import javax.net.ssl.*;
/* Same as Test1 but requests run in parallel.
--- a/jdk/test/com/sun/net/httpserver/Test9a.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/Test9a.java Wed Jul 21 13:29:26 2010 +0100
@@ -24,17 +24,15 @@
/**
* @test
* @bug 6270015
+ * @run main/othervm Test9a
* @summary Light weight HTTP server
*/
import com.sun.net.httpserver.*;
-import java.util.*;
import java.util.concurrent.*;
import java.io.*;
import java.net.*;
-import java.security.*;
-import java.security.cert.*;
import javax.net.ssl.*;
/* Same as Test1 but requests run in parallel.
--- a/jdk/test/com/sun/net/httpserver/bugs/B6361557.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/bugs/B6361557.java Wed Jul 21 13:29:26 2010 +0100
@@ -35,12 +35,9 @@
import java.nio.*;
import java.nio.channels.*;
import java.net.*;
-import java.security.*;
-import java.security.cert.*;
-import javax.net.ssl.*;
/**
- * The test simply opens 10,000 separate connections
+ * The test simply opens 1,000 separate connections
* and invokes one http request on each. The client does
* not close any sockets until after they are closed
* by the server. This verifies the basic ability
@@ -49,6 +46,7 @@
public class B6361557 {
public static boolean error = false;
+ static final int NUM = 1000;
static class Handler implements HttpHandler {
int invocation = 1;
@@ -75,7 +73,6 @@
server.setExecutor (executor);
server.start ();
- final int NUM = 10000;
ByteBuffer buf = ByteBuffer.allocate (4096);
InetSocketAddress destaddr = new InetSocketAddress (
"127.0.0.1", server.getAddress().getPort()
--- a/jdk/test/com/sun/net/httpserver/bugs/B6373555.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/com/sun/net/httpserver/bugs/B6373555.java Wed Jul 21 13:29:26 2010 +0100
@@ -46,7 +46,7 @@
private static Object lock;
static HttpServer httpServer;
static ExecutorService pool, execs;
- static int NUM = 4000;
+ static int NUM = 1000;
public static void main(String[] args) throws Exception {
try {
@@ -125,7 +125,7 @@
}
}
catch(Exception e) {
- //e.printStackTrace();
+ e.printStackTrace();
System.out.print (".");
error = true;
}
--- a/jdk/test/java/net/DatagramSocket/DatagramTimeout.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/DatagramSocket/DatagramTimeout.java Wed Jul 21 13:29:26 2010 +0100
@@ -27,25 +27,25 @@
* @summary test to see if timeout hangs
* @run main/timeout=15 DatagramTimeout
*/
-import java.net.*;
-import java.io.*;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.SocketTimeoutException;
public class DatagramTimeout {
-
- public static ServerSocket sock;
-
public static void main(String[] args) throws Exception {
boolean success = false;
+ DatagramSocket sock = new DatagramSocket();
+
try {
- DatagramSocket sock;
DatagramPacket p;
byte[] buffer = new byte[50];
p = new DatagramPacket(buffer, buffer.length);
- sock = new DatagramSocket(2333);
sock.setSoTimeout(2);
sock.receive(p);
} catch (SocketTimeoutException e) {
success = true;
+ } finally {
+ sock.close();
}
if (!success)
throw new RuntimeException("Socket timeout failure.");
--- a/jdk/test/java/net/DatagramSocket/SendSize.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/DatagramSocket/SendSize.java Wed Jul 21 13:29:26 2010 +0100
@@ -32,35 +32,26 @@
* @author Benjamin Renaud
*/
-import java.io.*;
-import java.net.*;
-import java.util.*;
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
public class SendSize {
-
- static final int clientPort = 8989;
- static final int serverPort = 9999;
static final int bufferLength = 512;
static final int packetLength = 256;
public static void main(String[] args) throws Exception {
- new ServerThread().start();
- new ClientThread().start();
+ DatagramSocket serverSocket = new DatagramSocket();
+ new ServerThread(serverSocket).start();
+ new ClientThread(serverSocket.getLocalPort()).start();
}
-
static class ServerThread extends Thread {
-
- int port;
DatagramSocket server;
- ServerThread(int port) throws IOException {
- this.port = port;
- this.server = new DatagramSocket(port);
- }
-
- ServerThread() throws IOException {
- this(SendSize.serverPort);
+ ServerThread(DatagramSocket server) {
+ this.server = server;
}
public void run() {
@@ -85,33 +76,22 @@
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("caugth: " + e);
+ } finally {
+ if (server != null) { server.close(); }
}
}
}
static class ClientThread extends Thread {
- int port;
int serverPort;
- int bufferLength;
- int packetLength;
-
DatagramSocket client;
InetAddress host;
- ClientThread(int port, int serverPort,
- int bufferLength, int packetLength) throws IOException {
- this.port = port;
+ ClientThread(int serverPort)throws IOException {
this.serverPort = serverPort;
this.host = InetAddress.getLocalHost();
- this.bufferLength = bufferLength;
- this.packetLength = packetLength;
- this.client = new DatagramSocket(port, host);
- }
-
- ClientThread() throws IOException {
- this(SendSize.clientPort, SendSize.serverPort,
- SendSize.bufferLength, SendSize.packetLength);
+ this.client = new DatagramSocket();
}
public void run() {
@@ -129,6 +109,8 @@
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("caught: " + e);
+ } finally {
+ if (client != null) { client.close(); }
}
}
}
--- a/jdk/test/java/net/Inet6Address/B6558853.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Inet6Address/B6558853.java Wed Jul 21 13:29:26 2010 +0100
@@ -43,6 +43,9 @@
InetAddress dest = null;
while (l.hasMoreElements() && dest == null) {
NetworkInterface nif = l.nextElement();
+ if (!nif.isUp())
+ continue;
+
for (InterfaceAddress a : nif.getInterfaceAddresses()) {
if (a.getAddress() instanceof Inet6Address) {
Inet6Address a6 = (Inet6Address) a.getAddress();
@@ -53,6 +56,7 @@
}
}
}
+ System.out.println("Using " + dest);
if (dest != null) {
B6558853 test = new B6558853(dest, port);
Thread thread = new Thread(test);
--- a/jdk/test/java/net/Inet6Address/serialize/Serialize.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Inet6Address/serialize/Serialize.java Wed Jul 21 13:29:26 2010 +0100
@@ -72,6 +72,7 @@
File file = new File (System.getProperty("test.src"), "serial1.4.2.ser");
ois = new ObjectInputStream(new FileInputStream(file));
nobj = (Inet6Address) ois.readObject();
+ ois.close();
if (!nobj.equals (InetAddress.getByName ("::1"))) {
throw new RuntimeException ("old ::1 not deserialized right");
}
@@ -90,6 +91,8 @@
nobj = (Inet6Address) ois.readObject();
} catch (NullPointerException e) {
throw new RuntimeException("6656849 Not fixed: NullPointer when deserializing");
+ } finally {
+ ois.close();
}
System.out.println(nobj);
System.out.println("All tests passed");
@@ -102,6 +105,7 @@
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("i6a1.ser"));
Inet6Address nobj = (Inet6Address) ois.readObject();
+ ois.close();
if (nobj.equals(obj)) {
return true;
--- a/jdk/test/java/net/InetAddress/CheckJNI.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/InetAddress/CheckJNI.java Wed Jul 21 13:29:26 2010 +0100
@@ -56,6 +56,8 @@
while (ifs.hasMoreElements()) {
NetworkInterface nif = (NetworkInterface)ifs.nextElement();
+ if (!nif.isUp())
+ continue;
Enumeration addrs = nif.getInetAddresses();
while (addrs.hasMoreElements()) {
InetAddress addr = (InetAddress) addrs.nextElement();
--- a/jdk/test/java/net/MulticastSocket/SetOutgoingIf.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/MulticastSocket/SetOutgoingIf.java Wed Jul 21 13:29:26 2010 +0100
@@ -76,6 +76,10 @@
// now determine what (if any) type of addresses are assigned to this interface
for (InetAddress addr : Collections.list(nic.getInetAddresses())) {
+ if (addr.isAnyLocalAddress())
+ continue;
+
+ System.out.println(" addr " + addr);
if (addr instanceof Inet4Address) {
netIf.ipv4Address(true);
} else if (addr instanceof Inet6Address) {
--- a/jdk/test/java/net/ResponseCache/B6181108.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/ResponseCache/B6181108.java Wed Jul 21 13:29:26 2010 +0100
@@ -67,9 +67,10 @@
out.flush();
s.close();
- ss.close();
} catch (Exception e) {
e.printStackTrace();
+ } finally {
+ try { ss.close(); } catch (IOException unused) {}
}
}
@@ -100,6 +101,7 @@
URLConnection urlc = url.openConnection();
int i = ((HttpURLConnection)(urlc)).getResponseCode();
System.out.println ("response code = " + i);
+ ResponseCache.setDefault(null);
}
public static void main(String args[]) throws Exception {
--- a/jdk/test/java/net/ResponseCache/ResponseCacheTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/ResponseCache/ResponseCacheTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -30,7 +30,6 @@
import java.net.*;
import java.util.*;
import java.io.*;
-import java.nio.*;
import sun.net.www.ParseUtil;
import javax.net.ssl.*;
@@ -43,11 +42,16 @@
static URL url1;
static URL url2;
static String FNPrefix, OutFNPrefix;
+ static List<Closeable> streams = new ArrayList<>();
+ static List<File> files = new ArrayList<>();
+
/*
* Our "http" server to return a 404 */
public void run() {
+ Socket s = null;
+ FileInputStream fis = null;
try {
- Socket s = ss.accept();
+ s = ss.accept();
InputStream is = s.getInputStream ();
BufferedReader r = new BufferedReader(new InputStreamReader(is));
@@ -68,7 +72,7 @@
out.print("Content-Length: "+file2.length()+"\r\n");
out.print("Connection: close\r\n");
out.print("\r\n");
- FileInputStream fis = new FileInputStream(file2);
+ fis = new FileInputStream(file2);
byte[] buf = new byte[(int)file2.length()];
int len;
while ((len = fis.read(buf)) != -1) {
@@ -81,6 +85,10 @@
ss.close();
} catch (Exception e) {
e.printStackTrace();
+ } finally {
+ try { ss.close(); } catch (IOException unused) {}
+ try { s.close(); } catch (IOException unused) {}
+ try { fis.close(); } catch (IOException unused) {}
}
}
static class NameVerifier implements HostnameVerifier {
@@ -144,11 +152,14 @@
// assert (headers1 == headers2 && file1 == file2.2)
File file1 = new File(OutFNPrefix+"file1");
File file2 = new File(OutFNPrefix+"file2.2");
+ files.add(file1);
+ files.add(file2);
System.out.println("headers1"+headers1+"\nheaders2="+headers2);
if (!headers1.equals(headers2) || file1.length() != file2.length()) {
throw new RuntimeException("test failed");
}
}
+
public static void main(String args[]) throws Exception {
try {
ResponseCache.setDefault(new MyResponseCache());
@@ -157,6 +168,12 @@
new ResponseCacheTest();
} finally{
ResponseCache.setDefault(null);
+ for (Closeable c: streams) {
+ try { c.close(); } catch (IOException unused) {}
+ }
+ for (File f: files) {
+ f.delete();
+ }
}
}
@@ -184,6 +201,7 @@
public MyCacheResponse(String filename) {
try {
fis = new FileInputStream(new File(filename));
+ streams.add(fis);
ObjectInputStream ois = new ObjectInputStream(fis);
headers = (Map<String,List<String>>)ois.readObject();
} catch (Exception ex) {
@@ -206,6 +224,8 @@
try {
File file = new File(filename);
fos = new FileOutputStream(file);
+ streams.add(fos);
+ files.add(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(rspHeaders);
} catch (Exception ex) {
--- a/jdk/test/java/net/ResponseCache/getResponseCode.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/ResponseCache/getResponseCode.java Wed Jul 21 13:29:26 2010 +0100
@@ -39,6 +39,7 @@
public class getResponseCode {
static URL url;
static String FNPrefix;
+ static List<Closeable> resources = new ArrayList<>();
getResponseCode() throws Exception {
url = new URL("http://localhost/file1.cache");
@@ -57,6 +58,9 @@
new getResponseCode();
} finally{
ResponseCache.setDefault(null);
+ for (Closeable c : resources) {
+ try { c.close(); } catch (IOException unused) {}
+ }
}
}
@@ -77,6 +81,7 @@
public MyResponse(String filename) {
try {
fis = new FileInputStream(new File(filename));
+ resources.add(fis);
headers = (Map<String,List<String>>)new ObjectInputStream(fis).readObject();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage());
--- a/jdk/test/java/net/Socket/AccurateTimeout.java Tue Jul 20 10:41:50 2010 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- */
-
-/* @test
- * @bug 4512028
- * @summary Check the tolerance on read timeouts.
- */
-import java.net.*;
-import java.io.*;
-
-public class AccurateTimeout {
-
- static final int TOLERANCE = 100;
-
- static boolean skipTest() {
- String os = System.getProperty("os.name");
- if (os.equals("Windows 95") ||
- os.equals("Windows 98") ||
- os.equals("Windows Me")) {
-
- System.out.println("Due to an OS bug timeout tolerance cannot be tested on this OS");
- return true;
- }
- return false;
- }
-
- public static void main(String args[]) throws Exception {
-
- if (skipTest()) {
- return;
- }
-
- int failures = 0;
- int timeout;
-
- System.out.println("");
- System.out.println("Testing Socket.getInputStream().read() ...");
- System.out.println("");
-
- ServerSocket ss = new ServerSocket(0);
- Socket s1 = new Socket(InetAddress.getLocalHost(), ss.getLocalPort());
- Socket s2 = ss.accept();
-
- InputStream in = s1.getInputStream();
-
- timeout = 100;
- while (timeout < 2500) {
- s1.setSoTimeout(timeout);
-
- long startTime = System.currentTimeMillis();
- try {
- in.read();
- } catch (SocketTimeoutException e) {
- }
- long actual = System.currentTimeMillis() - startTime;
-
- System.out.print("excepted: " + timeout + " actual: " + actual);
-
- if (Math.abs(actual-timeout) > TOLERANCE) {
- System.out.print(" *** FAIL: outside tolerance");
- failures++;
- } else {
- System.out.print(" PASS.");
- }
-
- System.out.println("");
- timeout += 200;
- }
-
- s1.close();
- s2.close();
- ss.close();
-
-
- // ----------
-
-
- System.out.println("");
- System.out.println("Testing DatagramSocket.receive ...");
- System.out.println("");
-
- byte b[] = new byte[8];
- DatagramPacket p = new DatagramPacket(b, b.length);
-
- DatagramSocket ds = new DatagramSocket();
-
- timeout = 100;
- while (timeout < 2500) {
- ds.setSoTimeout(timeout);
-
- long startTime = System.currentTimeMillis();
- try {
- ds.receive(p);
- } catch (SocketTimeoutException e) {
- }
- long actual = System.currentTimeMillis() - startTime;
-
- System.out.print("excepted: " + timeout + " actual: " + actual);
-
- if (Math.abs(actual-timeout) > TOLERANCE) {
- System.out.print(" *** FAIL: outside tolerance");
- failures++;
- } else {
- System.out.print(" PASS.");
- }
-
- System.out.println("");
- timeout += 200;
- }
-
- ds.close();
-
- System.out.println("");
-
- // ---------
-
- if (failures > 0) {
- throw new Exception("Test failed: " + failures +
- " test(s) outside tolerance");
- }
-
- }
-
-}
--- a/jdk/test/java/net/Socket/CloseAvailable.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/CloseAvailable.java Wed Jul 21 13:29:26 2010 +0100
@@ -47,6 +47,7 @@
t.start();
Socket soc = ss.accept();
+ ss.close();
DataInputStream is = new DataInputStream(soc.getInputStream());
is.close();
@@ -64,7 +65,7 @@
public void run() {
try {
Socket s = new Socket(addr, port);
-
+ s.close();
} catch (Exception e) {
e.printStackTrace();
}
--- a/jdk/test/java/net/Socket/DeadlockTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/DeadlockTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -33,29 +33,32 @@
public class DeadlockTest {
public static void main(String [] argv) throws Exception {
+ ServerSocket ss = new ServerSocket(0);
+ Socket clientSocket = new Socket();
- // Start the server thread
- Thread s1 = new Thread(new ServerThread());
- s1.start();
+ try {
+ // Start the server thread
+ Thread s1 = new Thread(new ServerThread(ss));
+ s1.start();
- // Sleep to make sure s1 has created a server socket
- Thread.sleep(1000);
+ // Start the client thread
+ ClientThread ct = new ClientThread(clientSocket, ss.getLocalPort());
+ Thread c1 = new Thread(ct);
+ c1.start();
- // Start the client thread
- ClientThread ct = new ClientThread();
- Thread c1 = new Thread(ct);
- c1.start();
-
- // Wait for the client thread to finish
- c1.join(40000);
+ // Wait for the client thread to finish
+ c1.join(20000);
- // If timeout, we assume there is a deadlock
- if (c1.isAlive() == true) {
- // Close the socket to force the server thread
- // terminate too
- s1.stop();
- ct.getSock().close();
- throw new Exception("Takes too long. Dead lock");
+ // If timeout, we assume there is a deadlock
+ if (c1.isAlive() == true) {
+ // Close the socket to force the server thread
+ // terminate too
+ s1.stop();
+ throw new Exception("Takes too long. Dead lock");
+ }
+ } finally {
+ ss.close();
+ clientSocket.close();
}
}
}
@@ -71,8 +74,8 @@
Socket sock;
- public ServerThread() throws Exception {
-
+ public ServerThread(ServerSocket serverSocket) throws Exception {
+ this.server = serverSocket;
}
public void ping(int cnt) {
@@ -85,7 +88,6 @@
try {
if (Thread.currentThread().getName().startsWith("child") == false) {
- server = new ServerSocket(4711);
sock = server.accept();
new Thread(this, "child").start();
@@ -107,6 +109,7 @@
}
} catch (Throwable e) {
+ System.out.println(e);
// If anything goes wrong, just quit.
}
@@ -141,10 +144,11 @@
Socket sock;
- public ClientThread() throws Exception {
+ public ClientThread(Socket sock, int serverPort) throws Exception {
try {
- System.out.println("About to create a socket");
- sock = new Socket(InetAddress.getLocalHost().getHostName(), 4711);
+ System.out.println("About to connect the client socket");
+ this.sock = sock;
+ this.sock.connect(new InetSocketAddress("localhost", serverPort));
System.out.println("connected");
out = new ObjectOutputStream(sock.getOutputStream());
@@ -156,10 +160,6 @@
}
}
- public Socket getSock() {
- return sock;
- }
-
private int cnt = 1;
public void run() {
@@ -213,6 +213,7 @@
System.out.println("write message done " + cnt++);
} catch (IOException ioe) {
// Ignore the exception
+ System.out.println(ioe);
}
}
}
--- a/jdk/test/java/net/Socket/LingerTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/LingerTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -81,7 +81,7 @@
public void run() {
System.out.println ("Another starts");
try {
- Thread.currentThread().sleep(delay);
+ Thread.sleep(delay);
Socket s = new Socket("localhost", port);
synchronized (this) {
connected = true;
@@ -105,7 +105,6 @@
Socket s1 = new Socket("localhost", ss.getLocalPort());
Socket s2 = ss.accept();
-
// setup conditions for untransmitted data and lengthy
// linger interval
s1.setSendBufferSize(128*1024);
@@ -122,14 +121,15 @@
thr.start();
// give sender time to queue the data
- Thread.currentThread().sleep(1000);
+ Thread.sleep(1000);
// close the socket asynchronously
(new Thread(new Closer(s1))).start();
// give another time to run
- Thread.currentThread().sleep(10000);
+ Thread.sleep(10000);
+ ss.close();
// check that another is done
if (!another.connected()) {
throw new RuntimeException("Another thread is blocked");
--- a/jdk/test/java/net/Socket/LinkLocal.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/LinkLocal.java Wed Jul 21 13:29:26 2010 +0100
@@ -58,11 +58,10 @@
} catch (SocketException e) {
failed++;
System.out.println("Test failed: " + e);
+ } finally {
+ s.close();
+ ss.close();
}
-
- // clean up
- s.close();
- ss.close();
}
static void UdpTest(InetAddress ia, boolean connected) throws Exception {
@@ -93,16 +92,16 @@
ds1.send(p);
System.out.println("Packet has been sent.");
- ds2.setSoTimeout(1000);
+ ds2.setSoTimeout(5000);
ds2.receive(p);
System.out.println("Test passed - packet received.");
} catch (SocketException e) {
failed++;
System.out.println("Test failed: " + e);
+ } finally {
+ ds1.close();
+ ds2.close();
}
-
- ds1.close();
- ds2.close();
}
static void TestAddress(InetAddress ia) throws Exception {
@@ -138,6 +137,9 @@
Enumeration nifs = NetworkInterface.getNetworkInterfaces();
while (nifs.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface)nifs.nextElement();
+ if (!ni.isUp())
+ continue;
+
Enumeration addrs = ni.getInetAddresses();
while (addrs.hasMoreElements()) {
InetAddress addr = (InetAddress)addrs.nextElement();
--- a/jdk/test/java/net/Socket/ProxyCons.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/ProxyCons.java Wed Jul 21 13:29:26 2010 +0100
@@ -39,6 +39,7 @@
public void run () {
try {
Socket s = server.accept ();
+ s.close();
while (!finished ()) {
Thread.sleep (500);
}
@@ -58,10 +59,9 @@
public ProxyCons() {
}
- void test() {
+ void test() throws Exception {
+ ServerSocket ss = new ServerSocket(0);
try {
- ServerSocket ss = new ServerSocket();
- ss.bind(new InetSocketAddress(0));
Server s = new Server(ss);
s.start();
Socket sock = new Socket(Proxy.NO_PROXY);
@@ -70,10 +70,12 @@
sock.close();
} catch (java.io.IOException e) {
throw new RuntimeException(e);
+ } finally {
+ ss.close();
}
}
- public static void main(String[] args) {
+ public static void main(String[] args) throws Exception {
ProxyCons c = new ProxyCons();
c.test();
}
--- a/jdk/test/java/net/Socket/ReadTimeout.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/ReadTimeout.java Wed Jul 21 13:29:26 2010 +0100
@@ -44,7 +44,7 @@
sin = InetAddress.getLocalHost();
srv = new ServerSocket(port);
port = srv.getLocalPort();
- soc = new Socket(sin, port, true);
+ soc = new Socket(sin, port);
soc1 = srv.accept();
soc.setSoTimeout(tout);
@@ -53,10 +53,10 @@
os = soc1.getOutputStream();
is.read();
} catch(InterruptedIOException e) {
+ } finally {
+ soc.close();
+ soc1.close();
+ srv.close();
}
-
- soc.close();
- soc1.close();
- srv.close();
}
}
--- a/jdk/test/java/net/Socket/SetReceiveBufferSize.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/SetReceiveBufferSize.java Wed Jul 21 13:29:26 2010 +0100
@@ -32,29 +32,14 @@
import java.net.ServerSocket;
public class SetReceiveBufferSize {
- class Server extends Thread {
- private ServerSocket ss;
- public Server(ServerSocket ss) {
- this.ss = ss;
- }
-
- public void run() {
- try {
- ss.accept();
- } catch (Exception e) {
- }
- }
- }
-
public static void main(String[] args) throws Exception {
SetReceiveBufferSize s = new SetReceiveBufferSize();
}
public SetReceiveBufferSize() throws Exception {
ServerSocket ss = new ServerSocket(0);
- Server serv = new Server(ss);
- serv.start();
Socket s = new Socket("localhost", ss.getLocalPort());
+ Socket accepted = ss.accept();
try {
s.setReceiveBufferSize(0);
} catch (IllegalArgumentException e) {
@@ -62,6 +47,8 @@
} catch (Exception ex) {
} finally {
ss.close();
+ s.close();
+ accepted.close();
}
throw new RuntimeException("IllegalArgumentException not thrown!");
}
--- a/jdk/test/java/net/Socket/SetSoLinger.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/SetSoLinger.java Wed Jul 21 13:29:26 2010 +0100
@@ -30,36 +30,24 @@
import java.net.*;
-public class SetSoLinger implements Runnable {
- static ServerSocket ss;
- static InetAddress addr;
- static int port;
+public class SetSoLinger {
+ static final int LINGER = 65546;
public static void main(String args[]) throws Exception {
- boolean error = true;
- int linger = 65546;
- int value = 0;
- addr = InetAddress.getLocalHost();
- ss = new ServerSocket(0);
- port = ss.getLocalPort();
+ int value;
+ InetAddress addr = InetAddress.getLocalHost();
+ ServerSocket ss = new ServerSocket(0);
+ int port = ss.getLocalPort();
- Thread t = new Thread(new SetSoLinger());
- t.start();
+ Socket s = new Socket(addr, port);
Socket soc = ss.accept();
- soc.setSoLinger(true, linger);
+ soc.setSoLinger(true, LINGER);
value = soc.getSoLinger();
soc.close();
+ s.close();
+ ss.close();
if(value != 65535)
throw new RuntimeException("Failed. Value not properly reduced.");
}
-
- public void run() {
- try {
- Socket s = new Socket(addr, port);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
}
--- a/jdk/test/java/net/Socket/ShutdownBoth.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/ShutdownBoth.java Wed Jul 21 13:29:26 2010 +0100
@@ -36,12 +36,14 @@
Socket s1 = new Socket(ss.getInetAddress(), ss.getLocalPort());
Socket s2 = ss.accept();
- s1.shutdownInput();
- s1.shutdownOutput(); // failed b55
-
- s1.close();
- s2.close();
- ss.close();
+ try {
+ s1.shutdownInput();
+ s1.shutdownOutput(); // failed b55
+ } finally {
+ s1.close();
+ s2.close();
+ ss.close();
+ }
}
}
--- a/jdk/test/java/net/Socket/SoTimeout.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/SoTimeout.java Wed Jul 21 13:29:26 2010 +0100
@@ -52,9 +52,10 @@
t.start();
Socket s = serverSocket.accept();
+ serverSocket.close();
- // set a 1 second timeout on the socket
- s.setSoTimeout(1000);
+ // set a 5 second timeout on the socket
+ s.setSoTimeout(5000);
s.getInputStream().read(b, 0, b.length);
s.close();
@@ -64,7 +65,7 @@
// this sequence should complete fairly quickly and if it
// takes something resembling the the SoTimeout value then
// we are probably incorrectly blocking and not waking up
- if (waited > 500) {
+ if (waited > 2000) {
throw new Exception("shouldn't take " + waited + " to complete");
}
}
--- a/jdk/test/java/net/Socket/Timeout.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/Timeout.java Wed Jul 21 13:29:26 2010 +0100
@@ -31,18 +31,16 @@
import java.io.*;
public class Timeout {
-
- public static ServerSocket sock;
-
public static void main(String[] args) throws Exception {
boolean success = false;
+ ServerSocket sock = new ServerSocket(0);
try {
- ServerSocket sock;
- sock = new ServerSocket(2333);
sock.setSoTimeout(2);
sock.accept();
} catch (InterruptedIOException e) {
success = true;
+ } finally {
+ sock.close();
}
if (!success)
throw new RuntimeException("Socket timeout failure.");
--- a/jdk/test/java/net/Socket/UrgentDataTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/UrgentDataTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -90,63 +90,64 @@
}
public void run () throws Exception {
- if (isClient) {
- client = new Socket (clHost, clPort);
- clis = client.getInputStream();
- clos = client.getOutputStream();
- client.setOOBInline (true);
- if (client.getOOBInline() != true) {
- throw new RuntimeException ("Setting OOBINLINE failed");
- }
- }
- if (isServer) {
- server = listener.accept ();
- sis = server.getInputStream();
- sos = server.getOutputStream();
- }
- if (isClient) {
- clos.write ("Hello".getBytes ());
- client.sendUrgentData (100);
- clos.write ("world".getBytes ());
- }
- // read Hello world from server (during which oob byte must have been dropped)
- String s = "Helloworld";
- if (isServer) {
- for (int y=0; y<s.length(); y++) {
- int c = sis.read ();
- if (c != (int)s.charAt (y)) {
- throw new RuntimeException ("Unexpected character read");
+ try {
+ if (isClient) {
+ client = new Socket (clHost, clPort);
+ clis = client.getInputStream();
+ clos = client.getOutputStream();
+ client.setOOBInline (true);
+ if (client.getOOBInline() != true) {
+ throw new RuntimeException ("Setting OOBINLINE failed");
}
}
- // Do the same from server to client
- sos.write ("Hello".getBytes ());
- server.sendUrgentData (101);
- sos.write ("World".getBytes ());
- }
- if (isClient) {
- // read Hello world from client (during which oob byte must have been read)
- s="Hello";
- for (int y=0; y<s.length(); y++) {
- int c = clis.read ();
- if (c != (int)s.charAt (y)) {
- throw new RuntimeException ("Unexpected character read");
+ if (isServer) {
+ server = listener.accept ();
+ sis = server.getInputStream();
+ sos = server.getOutputStream();
+ }
+ if (isClient) {
+ clos.write ("Hello".getBytes ());
+ client.sendUrgentData (100);
+ clos.write ("world".getBytes ());
+ }
+ // read Hello world from server (during which oob byte must have been dropped)
+ String s = "Helloworld";
+ if (isServer) {
+ for (int y=0; y<s.length(); y++) {
+ int c = sis.read ();
+ if (c != (int)s.charAt (y)) {
+ throw new RuntimeException ("Unexpected character read");
+ }
+ }
+ // Do the same from server to client
+ sos.write ("Hello".getBytes ());
+ server.sendUrgentData (101);
+ sos.write ("World".getBytes ());
+ }
+ if (isClient) {
+ // read Hello world from client (during which oob byte must have been read)
+ s="Hello";
+ for (int y=0; y<s.length(); y++) {
+ int c = clis.read ();
+ if (c != (int)s.charAt (y)) {
+ throw new RuntimeException ("Unexpected character read");
+ }
+ }
+ if (clis.read() != 101) {
+ throw new RuntimeException ("OOB byte not received");
+ }
+ s="World";
+ for (int y=0; y<s.length(); y++) {
+ int c = clis.read ();
+ if (c != (int)s.charAt (y)) {
+ throw new RuntimeException ("Unexpected character read");
+ }
}
}
- if (clis.read() != 101) {
- throw new RuntimeException ("OOB byte not received");
- }
- s="World";
- for (int y=0; y<s.length(); y++) {
- int c = clis.read ();
- if (c != (int)s.charAt (y)) {
- throw new RuntimeException ("Unexpected character read");
- }
- }
+ } finally {
+ if (listener != null) listener.close();
+ if (client != null) client.close ();
+ if (server != null) server.close ();
}
-
- if (isClient)
- client.close ();
- if (isServer)
- server.close ();
}
}
--- a/jdk/test/java/net/Socket/asyncClose/BrokenPipe.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/asyncClose/BrokenPipe.java Wed Jul 21 13:29:26 2010 +0100
@@ -61,7 +61,6 @@
try {
client.getOutputStream().write(new byte[1000000]);
} catch (IOException ioe) {
-
/*
* Check that the exception text doesn't indicate the
* socket is closed. In tiger we should be able to
@@ -71,8 +70,9 @@
if (text.toLowerCase().indexOf("closed") >= 0) {
throw ioe;
}
+ } finally {
+ server.close();
}
- server.close();
}
}
--- a/jdk/test/java/net/Socket/setReuseAddress/Restart.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/Socket/setReuseAddress/Restart.java Wed Jul 21 13:29:26 2010 +0100
@@ -39,27 +39,28 @@
*/
public static void main(String args[]) throws Exception {
-
- InetSocketAddress isa = new InetSocketAddress(0);
- ServerSocket ss = new ServerSocket();
- ss.bind(isa);
+ ServerSocket ss = new ServerSocket(0);
+ Socket s1 = null, s2 = null;
+ try {
+ int port = ss.getLocalPort();
- int port = ss.getLocalPort();
+ s1 = new Socket(InetAddress.getLocalHost(), port);
+ s2 = ss.accept();
- Socket s1 = new Socket(InetAddress.getLocalHost(), port);
- Socket s2 = ss.accept();
+ // close server socket and the accepted connection
+ ss.close();
+ s2.close();
- // close server socket and the accepted connection
- ss.close();
- s2.close();
-
- boolean failed = false;
+ ss = new ServerSocket();
+ ss.bind( new InetSocketAddress(port) );
+ ss.close();
- ss = new ServerSocket();
- ss.bind( new InetSocketAddress(port) );
- ss.close();
-
- // close the client socket
- s1.close();
+ // close the client socket
+ s1.close();
+ } finally {
+ if (ss != null) ss.close();
+ if (s1 != null) s1.close();
+ if (s2 != null) s2.close();
+ }
}
}
--- a/jdk/test/java/net/SocketInputStream/SocketClosedException.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/SocketInputStream/SocketClosedException.java Wed Jul 21 13:29:26 2010 +0100
@@ -32,68 +32,37 @@
import java.net.*;
public class SocketClosedException {
+ static void doServerSide() throws Exception {
+ try {
+ Socket socket = serverSocket.accept();
- /*
- * Is the server ready to serve?
- */
- volatile static boolean serverReady = false;
+ OutputStream os = socket.getOutputStream();
- /*
- * Define the server side of the test.
- *
- * If the server prematurely exits, serverReady will be set to true
- * to avoid infinite hangs.
- */
- static void doServerSide() throws Exception {
- ServerSocket serverSocket = new ServerSocket(serverPort);
- serverPort = serverSocket.getLocalPort();
-
- /*
- * Signal Client, we're ready for a connect.
- */
- serverReady = true;
-
- Socket socket = serverSocket.accept();
-
- InputStream is = socket.getInputStream();
- OutputStream os = socket.getOutputStream();
-
- os.write(85);
- os.flush();
- socket.close();
+ os.write(85);
+ os.flush();
+ socket.close();
+ } finally {
+ serverSocket.close();
+ }
}
- /*
- * Define the client side of the test.
- *
- * If the server prematurely exits, serverReady will be set to true
- * to avoid infinite hangs.
- */
- static void doClientSide() throws Exception {
+ static void doClientSide(int port) throws Exception {
+ Socket socket = new Socket("localhost", port);
+ InputStream is = socket.getInputStream();
- /*
- * Wait for server to get started.
- */
- while (!serverReady) {
- Thread.sleep(5000);
- }
-
- Socket socket = new Socket("localhost", serverPort);
- InputStream is = socket.getInputStream();
- OutputStream os = socket.getOutputStream();
-
- int read = is.read();
+ is.read();
socket.close();
- read = is.read();
+ is.read();
}
- static int serverPort = 0;
+ static ServerSocket serverSocket;
static Exception serverException = null;
public static void main(String[] args) throws Exception {
+ serverSocket = new ServerSocket(0);
startServer();
try {
- doClientSide();
+ doClientSide(serverSocket.getLocalPort());
} catch (SocketException e) {
if (!e.getMessage().equalsIgnoreCase("Socket closed")) {
throw new Exception("Received a wrong exception message: " +
@@ -108,21 +77,14 @@
}
static void startServer() {
- Thread serverThread = new Thread() {
+ (new Thread() {
public void run() {
try {
doServerSide();
} catch (Exception e) {
- /*
- * server thread just died.
- * Release the client, if not active already...
- */
- System.err.println("Server died...");
- serverReady = true;
- serverException = e;
+ e.printStackTrace();
}
}
- };
- serverThread.start();
+ }).start();
}
}
--- a/jdk/test/java/net/SocketInputStream/SocketTimeout.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/SocketInputStream/SocketTimeout.java Wed Jul 21 13:29:26 2010 +0100
@@ -31,26 +31,24 @@
import java.io.*;
public class SocketTimeout {
+ static final int TIMEOUT = 1000;
+
public static void main(String args[]) throws Exception {
- InetAddress sin = null;
+ InetAddress sin = InetAddress.getLocalHost();
Socket soc = null,soc1 = null;
InputStream is = null;
- OutputStream os = null;
ServerSocket srv = null;
int port = 0;
- int tout = 1000;
- sin = InetAddress.getLocalHost();
- srv = new ServerSocket(port);
+ srv = new ServerSocket(0);
port = srv.getLocalPort();
soc = new Socket(sin, port);
soc1 = srv.accept();
- soc.setSoTimeout(tout);
- srv.setSoTimeout(tout);
+ soc.setSoTimeout(TIMEOUT);
+ srv.setSoTimeout(TIMEOUT);
try {
is = soc.getInputStream();
- os = soc1.getOutputStream();
is.read();
} catch(InterruptedIOException e) {
try {
@@ -59,6 +57,9 @@
} catch(NoClassDefFoundError e1) {
throw new Exception ("SocketTimeoutException: not found");
}
+ } finally {
+ soc.close();
+ soc1.close();
}
// now check accept
@@ -72,12 +73,14 @@
} catch(NoClassDefFoundError e1) {
throw new Exception ("SocketTimeoutException: not found");
}
+ } finally {
+ srv.close();
}
// Now check DatagramSocket.receive()
DatagramSocket dg = new DatagramSocket ();
- dg.setSoTimeout (tout);
+ dg.setSoTimeout (TIMEOUT);
try {
dg.receive (new DatagramPacket (new byte [64], 64));
@@ -88,11 +91,8 @@
} catch(NoClassDefFoundError e1) {
throw new Exception ("SocketTimeoutException: not found");
}
+ } finally {
+ dg.close();
}
-
- soc.close();
- soc1.close();
- srv.close();
- dg.close();
}
}
--- a/jdk/test/java/net/URL/GetContent.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URL/GetContent.java Wed Jul 21 13:29:26 2010 +0100
@@ -53,11 +53,13 @@
// wait for client to read response - otherwise http
// client get error and re-establish connection
- Thread.currentThread().sleep(2000);
+ Thread.sleep(2000);
s.close();
} catch (Exception e) {
e.printStackTrace();
+ } finally {
+ try { ss.close(); } catch (IOException unused) {}
}
}
@@ -81,8 +83,6 @@
error = false;
}
- ss.close();
-
if (error)
throw new RuntimeException("No IOException generated.");
}
--- a/jdk/test/java/net/URLClassLoader/ClassLoad.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLClassLoader/ClassLoad.java Wed Jul 21 13:29:26 2010 +0100
@@ -27,20 +27,45 @@
* @summary Test for FileNotFoundException when loading bogus class
*/
-import java.net.*;
-import java.io.*;
+import java.io.InputStream;
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.URL;
+import java.net.URLClassLoader;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpServer;
public class ClassLoad {
public static void main(String[] args) throws Exception {
boolean error = true;
+
+ // Start a dummy server to return 404
+ HttpServer server = HttpServer.create(new InetSocketAddress(0), 0);
+ HttpHandler handler = new HttpHandler() {
+ public void handle(HttpExchange t) throws IOException {
+ InputStream is = t.getRequestBody();
+ while (is.read() != -1);
+ t.sendResponseHeaders (404, -1);
+ t.close();
+ }
+ };
+ server.createContext("/", handler);
+ server.start();
+
+ // Client request
try {
- URL url = new URL(args.length >= 1 ? args[0] : "http://jini.east/");
+ URL url = new URL("http://localhost:" + server.getAddress().getPort());
String name = args.length >= 2 ? args[1] : "foo.bar.Baz";
ClassLoader loader = new URLClassLoader(new URL[] { url });
+ System.out.println(url);
Class c = loader.loadClass(name);
System.out.println("Loaded class \"" + c.getName() + "\".");
} catch (ClassNotFoundException ex) {
+ System.out.println(ex);
error = false;
+ } finally {
+ server.stop(0);
}
if (error)
throw new RuntimeException("No ClassNotFoundException generated");
--- a/jdk/test/java/net/URLConnection/DisconnectAfterEOF.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/DisconnectAfterEOF.java Wed Jul 21 13:29:26 2010 +0100
@@ -56,7 +56,6 @@
int cl = -1;
int remaining = -1;
StringBuffer sb = new StringBuffer();
- Random r = new Random();
boolean close = false;
boolean inBody = false;
@@ -239,8 +238,6 @@
}
public static void main(String args[]) throws Exception {
- Random r = new Random();
-
// start server
ServerSocket ss = new ServerSocket(0);
Server svr = new Server(ss);
@@ -273,7 +270,7 @@
URLConnection uc1 = doRequest(uri);
doResponse(uc1);
- Thread.currentThread().sleep(2000);
+ Thread.sleep(2000);
URLConnection uc2 = doRequest(uri);
--- a/jdk/test/java/net/URLConnection/HandleContentTypeWithAttrs.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/HandleContentTypeWithAttrs.java Wed Jul 21 13:29:26 2010 +0100
@@ -111,9 +111,8 @@
} catch(Exception e) {
System.out.print("Server failure\n");
e.printStackTrace();
- try {
- serverSocket.close();
- } catch(IOException e2) {}
+ } finally {
+ try { serverSocket.close(); } catch(IOException unused) {}
}
} else {
try {
@@ -127,10 +126,9 @@
} catch(Exception e) {
// System.out.print("Service handler failure\n");
// e.printStackTrace();
+ } finally {
+ try { close(); } catch(IOException unused) {}
}
- try {
- close();
- } catch(IOException e2) {}
}
}
--- a/jdk/test/java/net/URLConnection/HttpContinueStackOverflow.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/HttpContinueStackOverflow.java Wed Jul 21 13:29:26 2010 +0100
@@ -30,7 +30,7 @@
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
+import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
@@ -41,61 +41,56 @@
static class Server implements Runnable {
int port;
+ ServerSocket serverSock ;
- Server(int port) {
- this.port = port;
+ Server() throws IOException {
+ serverSock = new ServerSocket(0);
+ }
+
+ int getLocalPort() {
+ return serverSock.getLocalPort();
}
public void run() {
+ Socket sock = null;
try {
- /* bind to port and wait for connection */
- ServerSocket serverSock = new ServerSocket( port );
serverSock.setSoTimeout(10000);
- Socket sock = serverSock.accept();
+ sock = serverSock.accept();
/* setup streams and read http request */
BufferedReader in = new BufferedReader(
new InputStreamReader(sock.getInputStream()));
PrintStream out = new PrintStream( sock.getOutputStream() );
- String request = in.readLine();
+ in.readLine();
/* send continue followed by invalid response */
out.println("HTTP/1.1 100 Continue\r");
out.println("\r");
out.println("junk junk junk");
out.flush();
-
- sock.close();
} catch (Exception e) {
e.printStackTrace();
+ } finally {
+ try { serverSock.close(); } catch (IOException unused) {}
+ try { sock.close(); } catch (IOException unused) {}
}
}
}
- HttpContinueStackOverflow(int port) throws Exception {
+ HttpContinueStackOverflow() throws Exception {
/* create the server */
- Server s = new Server(port);
- Thread thr = new Thread(s);
- thr.start();
-
- /* wait for server to bind to port */
- try {
- Thread.currentThread().sleep(2000);
- } catch (Exception e) { }
+ Server s = new Server();
+ (new Thread(s)).start();
/* connect to server, connect to server and get response code */
- URL url = new URL("http", "localhost", port, "anything.html");
+ URL url = new URL("http", "localhost", s.getLocalPort(), "anything.html");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- int respCode = conn.getResponseCode();
+ conn.getResponseCode();
System.out.println("TEST PASSED");
}
public static void main(String args[]) throws Exception {
- int port = 4090;
- if (args.length > 0) {
- port = Integer.parseInt(args[0]);
- }
System.out.println("Testing 100-Continue");
- new HttpContinueStackOverflow(port);
+ new HttpContinueStackOverflow();
}
}
--- a/jdk/test/java/net/URLConnection/Redirect307Test.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/Redirect307Test.java Wed Jul 21 13:29:26 2010 +0100
@@ -37,11 +37,11 @@
OutputStream os;
int port;
- String reply1 = "HTTP/1.1 307 Temporary Redirect\r\n" +
+ String reply1Part1 = "HTTP/1.1 307 Temporary Redirect\r\n" +
"Date: Mon, 15 Jan 2001 12:18:21 GMT\r\n" +
"Server: Apache/1.3.14 (Unix)\r\n" +
"Location: http://localhost:";
- String reply2 = "/redirected.html\r\n" +
+ String reply1Part2 = "/redirected.html\r\n" +
"Connection: close\r\n" +
"Content-Type: text/html; charset=iso-8859-1\r\n\r\n" +
"<html>Hello</html>";
@@ -49,9 +49,10 @@
RedirServer (ServerSocket y) {
s = y;
port = s.getLocalPort();
+ System.out.println("Server created listening on " + port);
}
- String reply3 = "HTTP/1.1 200 Ok\r\n" +
+ String reply2 = "HTTP/1.1 200 Ok\r\n" +
"Date: Mon, 15 Jan 2001 12:18:21 GMT\r\n" +
"Server: Apache/1.3.14 (Unix)\r\n" +
"Connection: close\r\n" +
@@ -64,16 +65,24 @@
is = s1.getInputStream ();
os = s1.getOutputStream ();
is.read ();
- String reply = reply1 + port + reply2;
+ String reply = reply1Part1 + port + reply1Part2;
os.write (reply.getBytes());
+ os.close();
/* wait for redirected connection */
s.setSoTimeout (5000);
s1 = s.accept ();
+ is = s1.getInputStream ();
os = s1.getOutputStream ();
- os.write (reply3.getBytes());
+ is.read();
+ os.write (reply2.getBytes());
+ os.close();
}
catch (Exception e) {
/* Just need thread to terminate */
+ System.out.println("Server: caught " + e);
+ e.printStackTrace();
+ } finally {
+ try { s.close(); } catch (IOException unused) {}
}
}
};
@@ -84,10 +93,7 @@
public static final int DELAY = 10;
public static void main(String[] args) throws Exception {
- int nLoops = 1;
- int nSize = 10;
- int port, n =0;
- byte b[] = new byte[nSize];
+ int port;
RedirServer server;
ServerSocket sock;
@@ -119,7 +125,8 @@
}
}
catch(IOException e) {
- throw new RuntimeException ("Exception caught");
+ e.printStackTrace();
+ throw new RuntimeException ("Exception caught + " + e);
}
}
}
--- a/jdk/test/java/net/URLConnection/RedirectLimit.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/RedirectLimit.java Wed Jul 21 13:29:26 2010 +0100
@@ -76,15 +76,19 @@
is.read ();
String reply = reply1 + port + "/redirect" + i + reply2;
os.write (reply.getBytes());
+ os.close();
}
s1 = s.accept ();
is = s1.getInputStream ();
os = s1.getOutputStream ();
is.read ();
os.write (reply3.getBytes());
+ os.close();
}
catch (Exception e) {
/* Just need thread to terminate */
+ } finally {
+ try { s.close(); } catch (IOException unused) {}
}
}
};
--- a/jdk/test/java/net/URLConnection/ResendPostBody.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/ResendPostBody.java Wed Jul 21 13:29:26 2010 +0100
@@ -109,8 +109,11 @@
while (!finished()) {
Thread.sleep (1000);
}
+ out.close();
} catch (Exception e) {
System.err.println ("Server Exception: " + e);
+ } finally {
+ try { server.close(); } catch (IOException unused) {}
}
}
}
@@ -134,7 +137,7 @@
public void execute () throws Exception {
- byte b[] = "X=ABCDEFGHZZZ".getBytes();
+ byte b[] = "X=ABCDEFGHZZZ".getBytes();
ss = new ServerSocket (0);
server = new Server (ss);
@@ -163,8 +166,9 @@
/* Read the response */
int resp = conURL.getResponseCode ();
+ server.setFinished (true);
+
if (resp != 200)
throw new RuntimeException ("Response code was not 200: " + resp);
- server.setFinished (true);
}
}
--- a/jdk/test/java/net/URLConnection/SetIfModifiedSince.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/SetIfModifiedSince.java Wed Jul 21 13:29:26 2010 +0100
@@ -23,7 +23,7 @@
/* @test
* @bug 4397096
- * @run main SetIfModifiedSince
+ * @run main/othervm SetIfModifiedSince
* @summary setIfModifiedSince() of HttpURLConnection sets invalid date of default locale
*/
--- a/jdk/test/java/net/URLConnection/TimeoutTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/TimeoutTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -43,8 +43,9 @@
try {
Socket s = server.accept ();
while (!finished ()) {
- Thread.sleep (2000);
+ Thread.sleep (1000);
}
+ s.close();
} catch (Exception e) {
}
}
@@ -70,9 +71,12 @@
URL url = new URL ("http://127.0.0.1:"+ss.getLocalPort());
URLConnection urlc = url.openConnection ();
InputStream is = urlc.getInputStream ();
+ throw new RuntimeException("Should have received timeout");
} catch (SocketTimeoutException e) {
- s.done ();
return;
+ } finally {
+ s.done();
+ ss.close();
}
}
}
--- a/jdk/test/java/net/URLConnection/URLConnectionHeaders.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/URLConnectionHeaders.java Wed Jul 21 13:29:26 2010 +0100
@@ -70,8 +70,10 @@
w.newLine();
w.flush();
s.close ();
- srv.close (); // or else the HTTPURLConnection will retry
- } catch (IOException e) { e.printStackTrace();}
+ } catch (IOException e) { e.printStackTrace();
+ } finally {
+ try { srv.close(); } catch (IOException unused) {}
+ }
}
}
--- a/jdk/test/java/net/URLConnection/ZeroContentLength.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/URLConnection/ZeroContentLength.java Wed Jul 21 13:29:26 2010 +0100
@@ -58,6 +58,14 @@
contentLength = cl;
}
+ static synchronized String getResponse() {
+ return response;
+ }
+
+ static synchronized int getContentLength() {
+ return contentLength;
+ }
+
/*
* Worker thread to service single connection - can service
* multiple http requests on same connection.
@@ -71,25 +79,44 @@
this.id = id;
}
+ final int CR = '\r';
+ final int LF = '\n';
+
public void run() {
try {
s.setSoTimeout(2000);
- int max = 100;
+ int max = 20; // there should only be 20 connections
+ InputStream in = new BufferedInputStream(s.getInputStream());
for (;;) {
-
- // read entire request from client
- byte b[] = new byte[100];
- InputStream in = s.getInputStream();
- int n, total=0;
+ // read entire request from client, until CR LF CR LF
+ int c, total=0;
try {
- do {
- n = in.read(b);
- if (n > 0) total += n;
- } while (n > 0);
- } catch (SocketTimeoutException e) { }
+ while ((c = in.read()) > 0) {
+ total++;
+ if (c == CR) {
+ if ((c = in.read()) > 0) {
+ total++;
+ if (c == LF) {
+ if ((c = in.read()) > 0) {
+ total++;
+ if (c == CR) {
+ if ((c = in.read()) > 0) {
+ total++;
+ if (c == LF) {
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ }
+ } catch (SocketTimeoutException e) {}
debug("worker " + id +
": Read request from client " +
@@ -105,19 +132,20 @@
new BufferedOutputStream(
s.getOutputStream() ));
- out.print("HTTP/1.1 " + response + "\r\n");
- if (contentLength >= 0) {
- out.print("Content-Length: " + contentLength +
+ out.print("HTTP/1.1 " + getResponse() + "\r\n");
+ int clen = getContentLength();
+ if (clen >= 0) {
+ out.print("Content-Length: " + clen +
"\r\n");
}
out.print("\r\n");
- for (int i=0; i<contentLength; i++) {
+ for (int i=0; i<clen; i++) {
out.write( (byte)'.' );
}
out.flush();
debug("worked " + id +
- ": Sent response to client, length: " + contentLength);
+ ": Sent response to client, length: " + clen);
if (--max == 0) {
s.close();
--- a/jdk/test/java/net/ipv6tests/B6521014.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/ipv6tests/B6521014.java Wed Jul 21 13:29:26 2010 +0100
@@ -58,6 +58,8 @@
Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
NetworkInterface ifc = (NetworkInterface) e.nextElement();
+ if (!ifc.isUp())
+ continue;
Enumeration addrs = ifc.getInetAddresses();
while (addrs.hasMoreElements()) {
InetAddress a = (InetAddress)addrs.nextElement();
--- a/jdk/test/java/net/ipv6tests/TcpTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/ipv6tests/TcpTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -38,7 +38,6 @@
static InetAddress ia4any;
static InetAddress ia6any;
static Inet6Address ia6addr;
- static InetAddress ia6bad; /* a global 6to4 IPv6 address, which cant be connected to */
static Inet4Address ia4addr;
static {
@@ -47,14 +46,6 @@
try {
ia4any = InetAddress.getByName ("0.0.0.0");
ia6any = InetAddress.getByName ("::0");
- if (ia6addr != null) {
- int scope = ia6addr.getScopeId();
- if (scope != 0) {
- ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6%"+scope);
- }
- } else {
- ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6");
- }
} catch (Exception e) {
e.printStackTrace();
}
@@ -69,7 +60,6 @@
dprintln ("Local Addresses");
dprintln (ia4addr.toString());
dprintln (ia6addr.toString());
- dprintln ("Bad address: " + ia6bad);
test1 (0);
test1 (5100);
test2();
@@ -224,19 +214,6 @@
c1.close (); c2.close();
s1.close (); s2.close();
- /* check if connect() timesout when connecting to unknown dest. */
-
- c1 = new Socket();
- t1 = System.currentTimeMillis();
- InetSocketAddress ad1 = new InetSocketAddress (ia6bad, 2500);
- try {
- c1.connect (ad1, 5000);
- throw new RuntimeException ("timeout exception was expected");
- } catch (SocketTimeoutException e) {
- t1 = System.currentTimeMillis() - t1;
- checkTime (t1, 5000);
- } catch (NoRouteToHostException e1) {
- }
System.out.println ("Test3: OK");
}
--- a/jdk/test/java/net/ipv6tests/Tests.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/java/net/ipv6tests/Tests.java Wed Jul 21 13:29:26 2010 +0100
@@ -134,11 +134,11 @@
}
}
- /* check the time got is within 20% of the time expected */
+ /* check the time got is within 50% of the time expected */
public static void checkTime (long got, long expected) {
dprintln ("checkTime: got " + got + " expected " + expected);
- long upper = expected + (expected / 5);
- long lower = expected - (expected / 5);
+ long upper = expected + (expected / 2);
+ long lower = expected - (expected / 2);
if (got > upper || got < lower) {
throw new RuntimeException ("checkTime failed: got " + got + " expected " + expected);
}
--- a/jdk/test/sun/net/ftp/FtpGetContent.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/ftp/FtpGetContent.java Wed Jul 21 13:29:26 2010 +0100
@@ -391,6 +391,10 @@
done = true;
}
+ synchronized boolean done() {
+ return done;
+ }
+
synchronized public void setPortEnabled(boolean ok) {
portEnabled = ok;
}
@@ -431,12 +435,13 @@
public void run() {
try {
Socket client;
- while (!done) {
+ while (!done()) {
client = server.accept();
(new FtpServerHandler(client)).start();
}
- server.close();
} catch(Exception e) {
+ } finally {
+ try { server.close(); } catch (IOException unused) {}
}
}
}
@@ -463,18 +468,13 @@
bytesRead = stream.read(buffer);
}
stream.close();
- server.terminate();
- server.interrupt();
if (totalBytes != filesize)
throw new RuntimeException("wrong file size!");
} catch (IOException e) {
- try {
- server.terminate();
- server.interrupt();
- } catch (Exception e2) {
- }
throw new RuntimeException(e.getMessage());
+ } finally {
+ server.terminate();
+ server.server.close();
}
}
-
}
--- a/jdk/test/sun/net/ftp/FtpURL.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/ftp/FtpURL.java Wed Jul 21 13:29:26 2010 +0100
@@ -438,8 +438,9 @@
client = server.accept();
(new FtpServerHandler(client)).run();
}
- server.close();
} catch(Exception e) {
+ } finally {
+ try { server.close(); } catch (IOException unused) {}
}
}
}
@@ -448,10 +449,9 @@
}
public FtpURL() throws Exception {
- FtpServer server = null;
+ FtpServer server = new FtpServer(0);
BufferedReader in = null;
try {
- server = new FtpServer(0);
server.start();
int port = server.getPort();
@@ -497,17 +497,14 @@
throw new RuntimeException("Incorrect filename received");
if (! "/usr".equals(server.pwd()))
throw new RuntimeException("Incorrect pwd received");
- in.close();
// We're done!
} catch (Exception e) {
- try {
- in.close();
- server.terminate();
- server.interrupt();
- } catch(Exception ex) {
- }
throw new RuntimeException("FTP support error: " + e.getMessage());
+ } finally {
+ try { in.close(); } catch (IOException unused) {}
+ server.terminate();
+ server.server.close();
}
}
}
--- a/jdk/test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingWithProgressMonitorTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingWithProgressMonitorTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -30,9 +30,7 @@
* @summary ChunkedEncoding unit test; MeteredStream/ProgressData problem
*/
-import java.io.*;
import java.net.*;
-import java.security.*;
import java.util.BitSet;
import sun.net.ProgressMeteringPolicy;
import sun.net.ProgressMonitor;
@@ -42,8 +40,10 @@
public class ChunkedEncodingWithProgressMonitorTest {
public static void main (String[] args) throws Exception {
ProgressMonitor.setMeteringPolicy(new MyProgressMeteringPolicy());
- ProgressMonitor.getDefault().addProgressListener(new MyProgressListener());
+ ProgressListener listener = new MyProgressListener();
+ ProgressMonitor.getDefault().addProgressListener(listener);
ChunkedEncodingTest.test();
+ ProgressMonitor.getDefault().removeProgressListener(listener);
if (flag.cardinality() != 3) {
throw new RuntimeException("All three methods in ProgressListener"+
--- a/jdk/test/sun/net/www/http/ChunkedOutputStream/Test.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/http/ChunkedOutputStream/Test.java Wed Jul 21 13:29:26 2010 +0100
@@ -34,7 +34,7 @@
public class Test implements HttpHandler {
- static int count = 0;
+ static volatile int count = 0;
static final String str1 = "Helloworld1234567890abcdefghijklmnopqrstuvwxyz"+
"1234567890abcdefkjsdlkjflkjsldkfjlsdkjflkj"+
@@ -46,9 +46,9 @@
public void handle(HttpExchange exchange) {
String reqbody;
try {
- switch (count) {
- case 0: /* test1 -- keeps conn alive */
- case 1: /* test2 -- closes conn */
+ switch (exchange.getRequestURI().toString()) {
+ case "/test/test1": /* test1 -- keeps conn alive */
+ case "/test/test2": /* test2 -- closes conn */
printRequestURI(exchange);
reqbody = read(exchange.getRequestBody());
if (!reqbody.equals(str1)) {
@@ -72,7 +72,7 @@
resHeaders.set("Connection", "close");
}
break;
- case 2: /* test 3 */
+ case "/test/test3": /* test 3 */
printRequestURI(exchange);
reqbody = read(exchange.getRequestBody());
@@ -93,19 +93,19 @@
exchange.sendResponseHeaders(200, reqbody.length());
write(exchange.getResponseBody(), reqbody);
break;
- case 3: /* test 4 */
- case 4: /* test 5 */
+ case "/test/test4": /* test 4 */
+ case "/test/test5": /* test 5 */
printRequestURI(exchange);
break;
- case 5: /* test 6 */
+ case "/test/test6": /* test 6 */
printRequestURI(exchange);
resHeaders = exchange.getResponseHeaders() ;
resHeaders.set("Location", "http://foo.bar/");
resHeaders.set("Connection", "close");
exchange.sendResponseHeaders(307, 0);
break;
- case 6: /* test 7 */
- case 7: /* test 8 */
+ case "/test/test7": /* test 7 */
+ case "/test/test8": /* test 8 */
printRequestURI(exchange);
reqbody = read(exchange.getRequestBody());
if (reqbody != null && !"".equals(reqbody)) {
@@ -116,7 +116,7 @@
resHeaders.set("Connection", "close");
exchange.sendResponseHeaders(200, 0);
break;
- case 8: /* test 9 */
+ case "/test/test9": /* test 9 */
printRequestURI(exchange);
reqbody = read(exchange.getRequestBody());
if (!reqbody.equals(str1)) {
@@ -134,7 +134,7 @@
exchange.sendResponseHeaders(200, reqbody.length());
write(exchange.getResponseBody(), reqbody);
break;
- case 9: /* test10 */
+ case "/test/test10": /* test10 */
printRequestURI(exchange);
InputStream is = exchange.getRequestBody();
String s = read (is, str1.length());
@@ -158,7 +158,7 @@
exchange.sendResponseHeaders(200, 0);
}
break;
- case 10: /* test11 */
+ case "/test/test11": /* test11 */
printRequestURI(exchange);
is = exchange.getRequestBody();
s = read (is, str1.length());
@@ -182,7 +182,7 @@
exchange.sendResponseHeaders(200, 0);
}
break;
- case 11: /* test12 */
+ case "/test/test12": /* test12 */
printRequestURI(exchange);
is = exchange.getRequestBody();
@@ -203,8 +203,8 @@
}
break;
}
+ count ++;
exchange.close();
- count ++;
} catch (IOException e) {
e.printStackTrace();
}
--- a/jdk/test/sun/net/www/http/HttpClient/B6726695.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/http/HttpClient/B6726695.java Wed Jul 21 13:29:26 2010 +0100
@@ -147,6 +147,8 @@
serverIgnore(s);
} catch (IOException e) {
e.printStackTrace();
+ } finally {
+ try { server.close(); } catch (IOException unused) {}
}
}
--- a/jdk/test/sun/net/www/http/HttpClient/MultiThreadTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/http/HttpClient/MultiThreadTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -100,11 +100,12 @@
}
} catch (Exception e) {
throw new RuntimeException (e.getMessage());
- }
- synchronized (threadlock) {
- threadCounter --;
- if (threadCounter == 0) {
- threadlock.notifyAll();
+ } finally {
+ synchronized (threadlock) {
+ threadCounter --;
+ if (threadCounter == 0) {
+ threadlock.notifyAll();
+ }
}
}
}
--- a/jdk/test/sun/net/www/http/HttpClient/ProxyTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/http/HttpClient/ProxyTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -47,7 +47,7 @@
private class HttpProxyServer extends Thread {
private ServerSocket server;
private int port;
- private boolean done = false;
+ private volatile boolean done = false;
private String askedUrl;
/**
@@ -125,12 +125,8 @@
}
}
- public HttpProxyServer(int port) {
- this.port = port;
- }
-
- public HttpProxyServer() {
- this(0);
+ public HttpProxyServer() throws IOException {
+ server = new ServerSocket(0);
}
public int getPort() {
@@ -148,51 +144,49 @@
*/
synchronized public void terminate() {
done = true;
+ try { server.close(); } catch (IOException unused) {}
}
public void run() {
try {
- server = new ServerSocket(port);
Socket client;
while (!done) {
client = server.accept();
(new HttpProxyHandler(client)).start();
}
- server.close();
} catch (Exception e) {
+ } finally {
+ try { server.close(); } catch (IOException unused) {}
}
}
}
- public static void main(String[] args) {
+ public static void main(String[] args) throws Exception {
ProxyTest test = new ProxyTest();
}
- public ProxyTest() {
+ public ProxyTest() throws Exception {
+ BufferedReader in = null;
String testURL = "ftp://anonymous:password@myhost.mydomain/index.html";
HttpProxyServer server = new HttpProxyServer();
try {
- server.start();
- int port = 0;
- while (port == 0) {
- Thread.sleep(500);
- port = server.getPort();
- }
+ server.start();
+ int port = server.getPort();
- System.setProperty("ftp.proxyHost","localhost");
- System.setProperty("ftp.proxyPort", String.valueOf(port));
- URL url = new URL(testURL);
- InputStream ins = url.openStream();
- BufferedReader in = new BufferedReader(new InputStreamReader(ins));
- String line;
- do {
- line = in.readLine();
- } while (line != null);
- in.close();
- server.terminate();
- server.interrupt();
+ Proxy ftpProxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("localhost", port));
+ URL url = new URL(testURL);
+ InputStream ins = (url.openConnection(ftpProxy)).getInputStream();
+ in = new BufferedReader(new InputStreamReader(ins));
+ String line;
+ do {
+ line = in.readLine();
+ } while (line != null);
+ in.close();
} catch (Exception e) {
e.printStackTrace();
+ } finally {
+ server.terminate();
+ try { in.close(); } catch (IOException unused) {}
}
/*
* If the URLs don't match, we've got a bug!
--- a/jdk/test/sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java Wed Jul 21 13:29:26 2010 +0100
@@ -91,9 +91,10 @@
out.flush();
s.close();
- server.close();
} catch (Exception e) {
e.printStackTrace();
+ } finally {
+ try { server.close(); } catch (IOException unused) {}
}
}
}
@@ -118,6 +119,8 @@
if (grp.activeCount() > 0) {
throw new RuntimeException("Keep-alive thread started in wrong thread group");
}
+
+ grp.destroy();
}
}
--- a/jdk/test/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java Wed Jul 21 13:29:26 2010 +0100
@@ -43,10 +43,6 @@
srv = s;
}
- Socket getSocket () {
- return (s);
- }
-
public void run() {
try {
s = srv.accept ();
@@ -57,7 +53,7 @@
is.read();
}
OutputStreamWriter ow =
- new OutputStreamWriter(s.getOutputStream());
+ new OutputStreamWriter((os = s.getOutputStream()));
ow.write("HTTP/1.0 200 OK\n");
// Note: The client expects 10 bytes.
@@ -71,19 +67,16 @@
// Note: The (buggy) server only sends 9 bytes.
ow.write("123456789");
ow.flush();
- ow.close();
} catch (Exception e) {
+ } finally {
+ try {if (os != null) { os.close(); }} catch (IOException e) {}
}
}
}
- /*
- *
- */
-
- public static void main (String[] args) {
+ public static void main (String[] args) throws Exception {
+ ServerSocket serversocket = new ServerSocket (0);
try {
- ServerSocket serversocket = new ServerSocket (0);
int port = serversocket.getLocalPort ();
XServer server = new XServer (serversocket);
server.start ();
@@ -100,11 +93,12 @@
}
}
is.close();
- server.getSocket().close ();
} catch (IOException e) {
return;
} catch (NullPointerException e) {
throw new RuntimeException (e);
+ } finally {
+ if (serversocket != null) serversocket.close();
}
}
}
--- a/jdk/test/sun/net/www/httptest/HttpServer.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/httptest/HttpServer.java Wed Jul 21 13:29:26 2010 +0100
@@ -188,6 +188,7 @@
sock.configureBlocking (false);
sock.register (selector, SelectionKey.OP_READ);
nconn ++;
+ System.out.println("SERVER: new connection. chan[" + sock + "]");
if (nconn == maxconn) {
/* deregister */
listenerKey.cancel ();
@@ -197,7 +198,9 @@
if (key.isReadable()) {
boolean closed;
SocketChannel chan = (SocketChannel) key.channel();
+ System.out.println("SERVER: connection readable. chan[" + chan + "]");
if (key.attachment() != null) {
+ System.out.println("Server: comsume");
closed = consume (chan);
} else {
closed = read (chan, key);
@@ -375,6 +378,7 @@
synchronized void orderlyCloseChannel (SelectionKey key) throws IOException {
SocketChannel ch = (SocketChannel)key.channel ();
+ System.out.println("SERVER: orderlyCloseChannel chan[" + ch + "]");
ch.socket().shutdownOutput();
key.attach (this);
clist.add (key);
@@ -382,6 +386,8 @@
synchronized void abortiveCloseChannel (SelectionKey key) throws IOException {
SocketChannel ch = (SocketChannel)key.channel ();
+ System.out.println("SERVER: abortiveCloseChannel chan[" + ch + "]");
+
Socket s = ch.socket ();
s.setSoLinger (true, 0);
ch.close();
--- a/jdk/test/sun/net/www/protocol/http/DigestTest.java Tue Jul 20 10:41:50 2010 -0400
+++ b/jdk/test/sun/net/www/protocol/http/DigestTest.java Wed Jul 21 13:29:26 2010 +0100
@@ -95,10 +95,11 @@
os.write (reply.getBytes());
Thread.sleep (2000);
s1.close ();
- }
- catch (Exception e) {
+ } catch (Exception e) {
System.out.println (e);
e.printStackTrace();
+ } finally {
+ try { s.close(); } catch (IOException unused) {}
}
}
@@ -204,15 +205,12 @@
public static void main(String[] args) throws Exception {
- int nLoops = 1;
- int nSize = 10;
- int port, n =0;
- byte b[] = new byte[nSize];
+ int port;
DigestServer server;
ServerSocket sock;
try {
- sock = new ServerSocket (5000);
+ sock = new ServerSocket (0);
port = sock.getLocalPort ();
}
catch (Exception e) {
@@ -225,21 +223,18 @@
boolean passed = false;
try {
-
Authenticator.setDefault (new MyAuthenticator ());
String s = "http://localhost:" + port + DigestServer.uri;
URL url = new URL(s);
java.net.URLConnection conURL = url.openConnection();
InputStream in = conURL.getInputStream();
- int c;
- while ((c = in.read ()) != -1) {
- }
+ while (in.read () != -1) {}
in.close ();
- }
- catch(ProtocolException e) {
+ } catch(ProtocolException e) {
passed = true;
}
+
if (!passed) {
throw new RuntimeException ("Expected a ProtocolException from wrong password");
}