diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/LegacyPojoStackTraceWriter.java b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/LegacyPojoStackTraceWriter.java index dbb4b50c0f..ffb09c7fa8 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/api/report/LegacyPojoStackTraceWriter.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/api/report/LegacyPojoStackTraceWriter.java @@ -21,6 +21,7 @@ import org.apache.maven.surefire.api.util.internal.StringUtils; +import static org.apache.maven.surefire.shared.utils.StringUtils.isNotEmpty; import java.io.PrintWriter; import java.io.StringWriter; @@ -33,8 +34,6 @@ public class LegacyPojoStackTraceWriter implements StackTraceWriter { - private static final int MAX_LINE_LENGTH = 77; - private final Throwable t; private final String testClass; @@ -81,19 +80,19 @@ public String smartTrimmedStackTrace() result.append( "#" ); result.append( testMethod ); SafeThrowable throwable = getThrowable(); - if ( throwable.getTarget() instanceof AssertionError ) - { - result.append( " " ); - result.append( getTruncatedMessage( throwable.getMessage(), MAX_LINE_LENGTH - result.length() ) ); - } - else + Throwable target = throwable.getTarget(); + if ( target != null ) { - Throwable target = throwable.getTarget(); - if ( target != null ) + if ( ! ( target instanceof AssertionError ) ) + { + result.append( ' ' ) + .append( target.getClass().getSimpleName() ); + } + final String msg = throwable.getMessage(); + if ( isNotEmpty( msg ) ) { - result.append( " " ); - result.append( target.getClass().getSimpleName() ); - result.append( getTruncatedMessage( throwable.getMessage(), MAX_LINE_LENGTH - result.length() ) ); + result.append( ' ' ) + .append( msg ); } } return result.toString(); @@ -120,28 +119,6 @@ private static boolean isMultiLineExceptionMessage( Throwable t ) return false; } - private static String getTruncatedMessage( String msg, int i ) - { - if ( i < 0 ) - { - return ""; - } - if ( msg == null ) - { - return ""; - } - String substring = msg.substring( 0, Math.min( i, msg.length() ) ); - if ( i < msg.length() ) - { - return " " + substring + "..."; - } - else - { - return " " + substring; - } - } - - @Override public String writeTrimmedTraceToString() { diff --git a/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java b/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java index 77cab65e13..3770f2bab4 100644 --- a/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java +++ b/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java @@ -25,7 +25,6 @@ import java.util.Collections; import java.util.List; -import static java.lang.Math.min; import static java.util.Arrays.asList; import static java.util.Collections.reverse; import static org.apache.maven.surefire.shared.utils.StringUtils.chompLast; @@ -37,8 +36,6 @@ @SuppressWarnings( "ThrowableResultOfMethodCallIgnored" ) public class SmartStackTraceParser { - private static final int MAX_LINE_LENGTH = 77; - private final SafeThrowable throwable; private final StackTraceElement[] stackTrace; @@ -133,23 +130,19 @@ public String getString() final String excClassName = excType.getName(); final String msg = throwable.getMessage(); - if ( target instanceof AssertionError + if ( ! ( target instanceof AssertionError || "junit.framework.AssertionFailedError".equals( excClassName ) || "junit.framework.ComparisonFailure".equals( excClassName ) - || excClassName.startsWith( "org.opentest4j." ) ) - { - if ( isNotEmpty( msg ) ) - { - result.append( ' ' ) - .append( msg ); - } - } - else + || excClassName.startsWith( "org.opentest4j." ) ) ) { result.append( rootIsInclass() ? " " : " ยป " ) - .append( toMinimalThrowableMiniMessage( excType ) ); + .append( toMinimalThrowableMiniMessage( excType ) ); + } - result.append( truncateMessage( msg, MAX_LINE_LENGTH - result.length() ) ); + if ( isNotEmpty( msg ) ) + { + result.append( ' ' ) + .append( msg ); } return result.toString(); } @@ -168,22 +161,6 @@ private static String toMinimalThrowableMiniMessage( Class excType ) return name; } - private static String truncateMessage( String msg, int i ) - { - StringBuilder truncatedMessage = new StringBuilder(); - if ( i >= 0 && msg != null ) - { - truncatedMessage.append( ' ' ) - .append( msg, 0, min( i, msg.length() ) ); - - if ( i < msg.length() ) - { - truncatedMessage.append( "..." ); - } - } - return truncatedMessage.toString(); - } - private boolean rootIsInclass() { return stackTrace != null && stackTrace.length > 0 && stackTrace[0].getClassName().equals( testClassName ); diff --git a/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/ATestClass.java b/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/ATestClass.java index f19a37c9aa..0fb2a7442d 100644 --- a/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/ATestClass.java +++ b/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/ATestClass.java @@ -60,7 +60,7 @@ public void nestedNpeOutsideTest() public void aLongTestErrorMessage() { - throw new RuntimeException( "This message will be truncated, somewhere over the rainbow. " + throw new RuntimeException( "This message won't be truncated, somewhere over the rainbow. " + "Gangnam style, Gangnam style, Gangnam style, , Gangnam style, Gangnam style" ); } diff --git a/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java b/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java index 63fe2c2b5e..f14784c734 100644 --- a/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java +++ b/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java @@ -136,7 +136,7 @@ public void testNestedNpeOutsideTest() } } - public void testLongMessageTruncation() + public void testLongMessageHandling() { ATestClass aTestClass = new ATestClass(); try @@ -148,7 +148,7 @@ public void testLongMessageTruncation() SmartStackTraceParser smartStackTraceParser = new SmartStackTraceParser( ATestClass.class.getName(), e, null ); String res = smartStackTraceParser.getString(); - assertEquals( "ATestClass.aLongTestErrorMessage:63 Runtime This message will be truncated, so...", + assertEquals( "ATestClass.aLongTestErrorMessage:63 Runtime " + e.getMessage(), res ); } }