Fixes a bug for error mesage which have new lines.
When using the ModernCollector() new lines in the error message would result in
parts of the error message being parsed as stack trace lines. This resolves the
problem by replace the newlines with spaces for the javascript version of the
error.
Change-Id: Ia232c5d93e5cd1c070390dcaf56aead0f2ad2c57
diff --git a/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java b/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
index fc12021..87b2475 100644
--- a/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
+++ b/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
@@ -186,7 +186,10 @@
var backingJsError;
if (typeof jsThrown == 'string') {
- backingJsError = fixIE(new Error(jsThrown));
+ // Replace newlines with spaces so that we don't confuse the parser
+ // below which splits on newlines, and will otherwise try to parse
+ // the error message as part of the stack trace.
+ backingJsError = fixIE(new Error(jsThrown.replace('\n', ' ')));
} else if (jsThrown && typeof jsThrown == 'object' && "stack" in jsThrown){
backingJsError = jsThrown;
} else {
diff --git a/user/test/com/google/gwt/core/client/impl/StackTraceTestBase.java b/user/test/com/google/gwt/core/client/impl/StackTraceTestBase.java
index 630544d..860a92b 100644
--- a/user/test/com/google/gwt/core/client/impl/StackTraceTestBase.java
+++ b/user/test/com/google/gwt/core/client/impl/StackTraceTestBase.java
@@ -50,6 +50,10 @@
assertJse("testing");
}
+ public void testTraceStringMultiline() {
+ assertJse("multi\nline\nerror\nmessage");
+ }
+
public void testTraceNull() {
assertJse(null);
}