merge in nyc-release history after reset to nyc-dev
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/TestOptions.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/TestOptions.java
index dec2841..7bc97a5 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/TestOptions.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/TestOptions.java
@@ -372,8 +372,8 @@
 
     /**
      * Returns TCP/IP port for synchronization channel.
-     * 
-     * @return string with port number or null
+     *
+     * @return port number if it is set, or DEFAULT_SYNC_PORT otherwise.
      */
     public int getSyncPortNumber() {
         String buf = getSyncPortString();
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/SocketTransportWrapper.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/SocketTransportWrapper.java
index 71c97ca..2e45529 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/SocketTransportWrapper.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/SocketTransportWrapper.java
@@ -39,7 +39,7 @@
 
 /**
  * This class provides TransportWrapper for row TCP/IP socket connection.
- *  
+ *
  */
 public class SocketTransportWrapper implements TransportWrapper {
 
@@ -52,9 +52,12 @@
 
     /**
      * Starts listening for connection on given or default address.
-     * 
-     * @param address address to listen or null for default address
-     * @return string representation of listening address 
+     *
+     * @param address
+     *            address to listen to or null for default address,
+     *            parsed as "hostname:port" or "port", if it contains
+     *            no semi-colon.
+     * @return string representation of listening address
      */
     public String startListening(String address) throws IOException {
         String hostName = null;
@@ -82,7 +85,7 @@
         } else {
             serverSocket = new ServerSocket(port);
         }
-        
+
         // use as workaround for unspecified behaviour of isAnyLocalAddress()
         InetAddress iAddress = null;
         if (hostName != null) {
@@ -90,11 +93,11 @@
         } else {
             iAddress = InetAddress.getLocalHost();
         }
-        
+
         address = iAddress.getHostName() + ":" + serverSocket.getLocalPort();
         return address;
     }
-    
+
     /**
      * Stops listening for connection on current address.
      */
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/DebuggerOnDemand/LaunchedDebugger.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/DebuggerOnDemand/LaunchedDebugger.java
index d50d3f4..08ce1f8 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/DebuggerOnDemand/LaunchedDebugger.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/DebuggerOnDemand/LaunchedDebugger.java
@@ -52,14 +52,14 @@
      * It forces to use attaching connector and fixed transport address.
      */
 /*
-    protected void beforeDebuggeeStart(JDWPOnDemandDebuggeeWrapper debugeeWrapper) {
+    protected void beforeConnectionSetUp() {
     	settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(JPDADebuggerOnDemandOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("DEBUGGER: Use ATTACH connector kind");
        
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
  */
     	
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/AttachConnectorTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/AttachConnectorTest.java
index c03dfca..f06b516 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/AttachConnectorTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/AttachConnectorTest.java
@@ -101,12 +101,12 @@
         logWriter.println("==> testAttachConnector001 PASSED!");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/BreakpointTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/BreakpointTest.java
index 95e0ea0..e108ade 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/BreakpointTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/BreakpointTest.java
@@ -128,12 +128,12 @@
         }
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ClassObjectIDTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ClassObjectIDTest.java
index 1aa4e45..97de978 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ClassObjectIDTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ClassObjectIDTest.java
@@ -89,12 +89,12 @@
         synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ClassPrepareTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ClassPrepareTest.java
index 8ca45d9..75b14f0 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ClassPrepareTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ClassPrepareTest.java
@@ -130,12 +130,12 @@
         logWriter.println("==> testClassPrepare001 PASSED!");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/EnableCollectionTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/EnableCollectionTest.java
index c2b1e2d..f9b8abe 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/EnableCollectionTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/EnableCollectionTest.java
@@ -147,12 +147,12 @@
         logWriter.println("==> testEnableCollection001 PASSED!");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ExceptionTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ExceptionTest.java
index 883f965..3f63819 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ExceptionTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ExceptionTest.java
@@ -131,12 +131,12 @@
         logWriter.println("==> testException001 PASSED!");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/FieldAccessTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/FieldAccessTest.java
index 158dd8a..6cafc9e 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/FieldAccessTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/FieldAccessTest.java
@@ -126,12 +126,12 @@
         logWriter.println("==> testFieldAccess001 PASSED!");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/FieldModificationTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/FieldModificationTest.java
index 9b63b6d..5e3fd0a 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/FieldModificationTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/FieldModificationTest.java
@@ -127,12 +127,12 @@
         logWriter.println("==> testFieldModification001 PASSED!");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ListenConnectorTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ListenConnectorTest.java
index b977f35..284e677 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ListenConnectorTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ListenConnectorTest.java
@@ -45,10 +45,10 @@
     /**
      * Sets kind of connection: listen kind.
      */
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setListenConnectorKind();
         logWriter.println("LISTEN connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 
     /**
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/MethodEntryExitTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/MethodEntryExitTest.java
index ce0be25..2dc80d0 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/MethodEntryExitTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/MethodEntryExitTest.java
@@ -139,12 +139,12 @@
         }
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if(settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/RefTypeIDTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/RefTypeIDTest.java
index 9013d55..9d70592 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/RefTypeIDTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/RefTypeIDTest.java
@@ -90,12 +90,12 @@
         synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ResumeTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ResumeTest.java
index c060791..ac31faf 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ResumeTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ResumeTest.java
@@ -70,12 +70,12 @@
         logWriter.println("TEST PASSED");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/SingleStepTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/SingleStepTest.java
index 2924030..72df3b6 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/SingleStepTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/SingleStepTest.java
@@ -180,12 +180,12 @@
         logWriter.println("==> testSingleStep001 PASSED!");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ThreadEndTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ThreadEndTest.java
index df6df7c..84259b0 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ThreadEndTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ThreadEndTest.java
@@ -121,12 +121,12 @@
         }
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ThreadStartTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ThreadStartTest.java
index 3a7359f..3bb54cd 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ThreadStartTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/ThreadStartTest.java
@@ -125,12 +125,12 @@
         }
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/VMDeathTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/VMDeathTest.java
index d63740f..6a6de6c 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/VMDeathTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/MultiSession/VMDeathTest.java
@@ -150,12 +150,12 @@
         logWriter.println("==> test PASSED!");
     }
 
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeConnectionSetUp() {
         settings.setAttachConnectorKind();
         if (settings.getTransportAddress() == null) {
             settings.setTransportAddress(TestOptions.DEFAULT_ATTACHING_ADDRESS);
         }
         logWriter.println("ATTACH connector kind");
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeConnectionSetUp();
     }
 }
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/VirtualMachine/ExitTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/VirtualMachine/ExitTest.java
index e1f0d5a..d21ef57 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/VirtualMachine/ExitTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/VirtualMachine/ExitTest.java
@@ -45,10 +45,10 @@
     }
 
     @Override
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeDebuggeeStart() {
         // Indicate that we expect the debuggee to exit with a particular code.
         debuggeeWrapper.setExpectedExitCode(EXIT_CODE);
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeDebuggeeStart();
     }
 
     /**
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPSyncTestCase.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPSyncTestCase.java
index 8dbe400..5caf5c6 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPSyncTestCase.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPSyncTestCase.java
@@ -40,11 +40,11 @@
     /**
      * This method is invoked right before starting debuggee VM.
      */
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
+    protected void beforeDebuggeeStart() {
         synchronizer = createSynchronizer();
         int port = synchronizer.bindServer();
         debuggeeWrapper.savedVMOptions = "-Djpda.settings.syncPort=" + port;
-        super.beforeDebuggeeStart(debuggeeWrapper);
+        super.beforeDebuggeeStart();
     }
 
     /**
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java
index 86e776c..47d2a2b 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPTestCase.java
@@ -57,7 +57,9 @@
 
         // launch debuggee process
         debuggeeWrapper = createDebuggeeWrapper();
-        beforeDebuggeeStart(debuggeeWrapper);
+        beforeConnectionSetUp();
+        setUpDebuggeeWrapperConnection();
+        beforeDebuggeeStart();
         startDebuggeeWrapper();
 
         // receive and handle initial event
@@ -80,19 +82,27 @@
     }
 
     /**
+     * Set up server side JDWP connection.
+     */
+    protected void setUpDebuggeeWrapperConnection() {
+        debuggeeWrapper.setUpConnection();
+        logWriter.println("Set up server side JDWP connection.");
+    }
+
+    /**
      * Starts wrapper for debuggee process.
      */
     protected void startDebuggeeWrapper() {
-    	debuggeeWrapper.start();
+        debuggeeWrapper.start();
         logWriter.println("Established JDWP connection with debuggee VM");
     }
-    	
+
     /**
      * Receives initial VM_INIT event if debuggee is suspended on event.
      */
     protected void receiveInitialEvent() {
         if (settings.isDebuggeeSuspend()) {
-            initialEvent = 
+            initialEvent =
                 debuggeeWrapper.vmMirror.receiveCertainEvent(JDWPConstants.EventKind.VM_INIT);
             logWriter.println("Received inital VM_INIT event");
         }
@@ -111,10 +121,17 @@
     }
 
     /**
+     * This method is invoked right before setting up the server side JDWP connection.
+     */
+    protected void beforeConnectionSetUp() {
+      // Empty.
+    }
+
+    /**
      * This method is invoked right before starting debuggee VM.
      */
-    protected void beforeDebuggeeStart(JDWPUnitDebuggeeWrapper debuggeeWrapper) {
-
+    protected void beforeDebuggeeStart() {
+      // Empty.
     }
 
     /**
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPUnitDebuggeeWrapper.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPUnitDebuggeeWrapper.java
index 70b4c1a..fe31b59 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPUnitDebuggeeWrapper.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/share/JDWPUnitDebuggeeWrapper.java
@@ -43,11 +43,25 @@
      */
     public String savedVMOptions = null;
 
+    /**
+     * Wrapper around JDWP transport connection.
+     */
     protected TransportWrapper transport;
 
     /**
+     * JDWP transport address.
+     */
+    protected String address;
+
+    /**
+     * Is this a "listen" JDWP connection? (If false, it is a an "attach" connection.)
+     */
+    boolean isListenConnection;
+
+
+    /**
      * Creates new instance with given data.
-     * 
+     *
      * @param settings
      *            test run options
      * @param logWriter
@@ -58,13 +72,12 @@
     }
 
     /**
-     * Launches new debuggee process according to test run options and
-     * establishes JDWP connection.
+     * Set up server side JDWP connection before launching the debuggee.
      */
-    public void start() {
-        boolean isListenConnection = settings.isListenConnectorKind();
+    public void setUpConnection() {
+        isListenConnection = settings.isListenConnectorKind();
         transport = createTransportWrapper();
-        String address = settings.getTransportAddress();
+        address = settings.getTransportAddress();
 
         if (isListenConnection) {
             logWriter.println("Start listening on: " + address);
@@ -77,7 +90,13 @@
         } else {
             logWriter.println("Attach to: " + address);
         }
+    }
 
+    /**
+     * Launches new debuggee process according to test run options and
+     * establishes JDWP connection.
+     */
+    public void start() {
         String cmdLine = settings.getDebuggeeJavaPath() + " -cp \""
                 + settings.getDebuggeeClassPath() + "\" -agentlib:"
                 + settings.getDebuggeeAgentName() + "="