Name: gsC80088 Date: 01/13/99
This is nearly the same as bug no. 4060907, but still reproducible in JDK1.2beta4!
The attached program does the following:
1. create a server socket on port 8003
2. 'exec' Windows-Notepad
3. close the server socket
4. try to create the server socket again
On (4.) I get the following error message:
java.net.BindException: Address in use: bind
If I do not exec Notepad or if I do a waitFor(Notepad), it works fine.
The test program:
--------------------------------------------------
import java.io.*;
import java.net.*;
import java.util.*;
public class TestBind
{
public static void main (String[] args)
{
ServerSocket mySocket;
try
{
Properties prop = System.getProperties();
String javaver = prop.getProperty("java.version");
if (javaver != null)
System.err.println("java version: "+javaver);
else
System.err.println("java.version: not found");
// create socket
System.err.println("create serverSocket");
mySocket = new ServerSocket(8003);
// exec notepad
String[] execcmd = new String[2];
execcmd[0] = "c:\\winnt\\system32\\notepad.exe";
execcmd[1] = "c:\\tmp\\test.html";
// execute the command
System.err.println("start exec");
Process notepad = Runtime.getRuntime().exec (execcmd);
//System.err.println("waiting for end of notepad");
//notepad.waitFor();
// close socket
System.err.println("close serverSocket");
mySocket.close();
// open socket again
System.err.println("open serverSocket again");
mySocket = new ServerSocket(8003);
}
catch (IOException e)
{
System.err.println(e);
}
/*catch (InterruptedException e)
{
System.err.println(e);
}*/
System.exit(0);
}
}
(Review ID: 39948)
======================================================================