8057149: sun/management/jmxremote/startstop/JMXStartStopTest.java fails with "Starting agent on port ... should report port in use"

Reviewed-by: sla
This commit is contained in:
Jaroslav Bachorik 2014-09-24 11:55:36 +02:00
parent d6f69e8da5
commit 2d52d7e64d

View File

@ -614,20 +614,34 @@ public class JMXStartStopTest {
try (ServerSocket ss = new ServerSocket(0)) try (ServerSocket ss = new ServerSocket(0))
{ {
busyPort = ss.getLocalPort(); busyPort = ss.getLocalPort();
jcmd( int retryCntr = 1;
line -> { do {
boolean match = line.contains("Port already in use: " + final boolean[] retry = new boolean[]{false};
busyPort); jcmd(
System.out.println("[match] " + line + " => " + match); line -> {
if (match) { boolean match = line.contains("Port already in use: " +
checks.getAndUpdate((op) -> op | 4); busyPort);
} System.out.println("[match] " + line + " => " + match);
}, if (match) {
CMD_START, checks.getAndUpdate((op) -> op | 4);
"jmxremote.port=" + ss.getLocalPort(), retry[0] = false;
"jmxremote.rmi.port=" + pa.getPort2(), } else if (line.contains("Exception thrown by the agent")) {
"jmxremote.authenticate=false", retry[0] = true;
"jmxremote.ssl=false"); }
},
CMD_START,
"jmxremote.port=" + ss.getLocalPort(),
"jmxremote.rmi.port=" + pa.getPort2(),
"jmxremote.authenticate=false",
"jmxremote.ssl=false"
);
if (!retry[0]) {
break;
}
System.out.println("Attempt " + retryCntr + " >>>");
System.out.println("Unexpected reply from the agent. Retrying in 500ms ...");
Thread.sleep(500);
} while (retryCntr++ < 10);
} }
if ((checks.get() & 1) == 0) { if ((checks.get() & 1) == 0) {
throw new Exception("Starting agent on port " + pa.getPort1() + " should " + throw new Exception("Starting agent on port " + pa.getPort1() + " should " +