From 841b355f8e858ff59aae42e20208782298063a0c Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Sat, 5 Apr 2014 15:29:34 +0000 Subject: QPID-5048: fix parsing error in AbstractTestLogging when determining connection or channel id, which causes spurious failure when test ordering differs while running in Jenkins Patch supplied by Andrew MacBean git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1585105 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/logging/AbstractTestLogging.java | 35 +++++++++++----------- .../qpid/server/logging/ConnectionLoggingTest.java | 5 ++-- 2 files changed, 21 insertions(+), 19 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java index 84017b6850..8555d9c751 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java @@ -26,10 +26,12 @@ import org.apache.qpid.util.LogMonitor; import java.io.FileNotFoundException; import java.io.IOException; +import java.text.NumberFormat; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.Locale; /** * Abstract superclass for logging test set up and utility methods. @@ -110,15 +112,7 @@ public class AbstractTestLogging extends QpidBrokerTestCase { end = log.length(); } - - try - { - return Integer.parseInt(log.substring(start, end)); - } - catch (Exception e) - { - return -1; - } + return parseInt(log, start, end); } protected String fromMessage(String log) @@ -237,14 +231,7 @@ public class AbstractTestLogging extends QpidBrokerTestCase { int conIDStart = log.indexOf("con:") + 4; int conIDEnd = log.indexOf("(", conIDStart); - try - { - return Integer.parseInt(log.substring(conIDStart, conIDEnd)); - } - catch (Exception e) - { - return -1; - } + return parseInt(log, conIDStart, conIDEnd); } /** @@ -409,4 +396,18 @@ public class AbstractTestLogging extends QpidBrokerTestCase System.err.println(monitor.readFile()); } } + + private int parseInt(final String logSubstring, final int start, final int end) + { + try + { + final NumberFormat format = NumberFormat.getInstance(Locale.getDefault()); + final Number number = format.parse(logSubstring.substring(start, end)); + return number.intValue(); + } + catch (Exception e) + { + return -1; + } + } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java index 2eccab102b..0be1f69948 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java @@ -179,8 +179,9 @@ public class ConnectionLoggingTest extends AbstractTestLogging assertTrue("Message does not end with close:" + log, log.endsWith("Close")); // Extract connection ID to validate there is a CON-1001 messasge for it - int closeConnectionID = getConnectionID(fromSubject(log)); - assertTrue("Could not find connection id in CLOSE", closeConnectionID != -1); + final String logSubject = fromSubject(log); + int closeConnectionID = getConnectionID(logSubject); + assertTrue("Could not get the connection id from CLOSE message: " + logSubject, closeConnectionID != -1); //Previous log message should be the open log = getLogMessageFromEnd(results, 1); -- cgit v1.2.1