revert commit 4b25d3447690f383664d98ea2c89db5f833a6e4a "Fix testng-eclipse issue #48: testng-eclipse will be hang if run RemoteTestNG with error argument."
diff --git a/src/main/java/org/testng/remote/strprotocol/BaseMessageSender.java b/src/main/java/org/testng/remote/strprotocol/BaseMessageSender.java
index d5bf5f1..7c5d06b 100644
--- a/src/main/java/org/testng/remote/strprotocol/BaseMessageSender.java
+++ b/src/main/java/org/testng/remote/strprotocol/BaseMessageSender.java
@@ -118,24 +118,33 @@
if (m_inStream != null) {
p("Receiver already initialized");
}
- ServerSocket serverSocket = null;
+ ServerSocket serverSocket;
try {
p("initReceiver on port " + m_port);
serverSocket = new ServerSocket(m_port);
serverSocket.setSoTimeout(5000);
- Socket socket = serverSocket.accept();
- m_inStream = socket.getInputStream();
- m_inReader = new BufferedReader(new InputStreamReader(m_inStream));
- m_outStream = socket.getOutputStream();
- m_outWriter = new PrintWriter(new OutputStreamWriter(m_outStream));
+ while (true) {
+ try {
+ Socket socket = serverSocket.accept();
+ m_inStream = socket.getInputStream();
+ m_inReader = new BufferedReader(new InputStreamReader(m_inStream));
+ m_outStream = socket.getOutputStream();
+ m_outWriter = new PrintWriter(new OutputStreamWriter(m_outStream));
+
+ break;
+ }
+ catch (IOException ioe) {
+ try {
+ Thread.sleep(100L);
+ }
+ catch (InterruptedException ie) {
+ // Do nothing.
+ }
+ }
+ }
}
catch(SocketTimeoutException ste) {
- try {
- serverSocket.close();
- } catch (IOException e) {
- // ignore
- }
throw ste;
}
catch (IOException ioe) {