QPID-8241: Fix conversion tests
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java
index 91f849b..745c8db 100644
--- a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/Client.java
@@ -150,6 +150,12 @@
e.printStackTrace();
e.printStackTrace(System.out);
}
+ catch (Error e)
+ {
+ e.printStackTrace();
+ e.printStackTrace(System.out);
+ throw e;
+ }
}
private String stringifyStacktrace(final Throwable e)
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java
index 4f9183b..c35787c 100644
--- a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/client/MessageVerifier.java
@@ -40,8 +40,6 @@
import javax.jms.StreamMessage;
import javax.jms.TextMessage;
-import org.apache.qpid.server.util.StringUtil;
-
public class MessageVerifier
{
public static void verifyMessage(final MessageDescription messageDescription, final Message message)
@@ -258,16 +256,6 @@
{
final byte[] expectedValueAsBytes = (byte[]) expectedValue;
final byte[] actualValueAsBytes = (byte[]) actualValue;
- String expectedValueAsString = StringUtil.toHex(expectedValueAsBytes);
- if (expectedValueAsString.length() > 20)
- {
- expectedValueAsString = expectedValueAsString.substring(0, 20) + "...";
- }
- String actualValueAsString = StringUtil.toHex(actualValueAsBytes);
- if (actualValueAsString.length() > 20)
- {
- actualValueAsString = actualValueAsString.substring(0, 20) + "...";
- }
if (expectedValueAsBytes.length != actualValueAsBytes.length)
{
throw new VerificationException(String.format(
@@ -275,15 +263,15 @@
failureMessage,
expectedValueAsBytes.length,
actualValueAsBytes.length,
- expectedValueAsString,
- actualValueAsString));
+ encode(expectedValueAsBytes),
+ encode(actualValueAsBytes)));
}
if (!Arrays.equals(expectedValueAsBytes, actualValueAsBytes))
{
throw new VerificationException(String.format("%s: arrays do not match ('%s' vs '%s')",
failureMessage,
- expectedValueAsString,
- actualValueAsString));
+ encode(expectedValueAsBytes),
+ encode(actualValueAsBytes)));
}
}
else if (expectedValue instanceof Map)
@@ -352,4 +340,26 @@
}
}
}
+
+ private static String encode(final byte[] expectedValueAsBytes)
+ {
+ String expectedValueAsString = toHex(expectedValueAsBytes);
+ if (expectedValueAsString.length() > 20)
+ {
+ expectedValueAsString = expectedValueAsString.substring(0, 20) + "...";
+ }
+ return expectedValueAsString;
+ }
+
+ private static final char[] HEX = "0123456789ABCDEF".toCharArray();
+
+ private static String toHex(byte[] bin)
+ {
+ StringBuilder result = new StringBuilder(2 * bin.length);
+ for (byte b : bin) {
+ result.append(HEX[(b >> 4) & 0xF]);
+ result.append(HEX[(b & 0xF)]);
+ }
+ return result.toString();
+ }
}