Skip to content

Commit 3274699

Browse files
committed
Merge pull request SquareSquash#4 from square/edenman/fix-nested-backtrace-format
Fix backtrace format for nested exceptions
2 parents 1f34fdc + 9ad2432 commit 3274699

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

src/main/java/com/squareup/squash/SquashBacktrace.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public static void populateNestedExceptions(List<NestedException> nestedExceptio
7777
}
7878
final Throwable cause = error.getCause();
7979
NestedException doc = new NestedException(cause.getClass().getName(), cause.getMessage(),
80-
getStacktraceArray(cause), getIvars(cause));
80+
getBacktraces(cause), getIvars(cause));
8181
nestedExceptions.add(doc);
8282
// Exceptions all the way down!
8383
populateNestedExceptions(nestedExceptions, cause);

src/test/java/com/squareup/squash/SquashEntryTest.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ private void assertBacktracesMatch(StackTraceElement[] myLittleStackTrace,
119119
final SquashEntry logEntry = factory.create(logMessage, exception);
120120
SquashEntry deserialized = serializeAndDeserialize(logEntry);
121121
assertThat(deserialized.backtraces).isNotEmpty();
122-
final List<Object> backtrace = deserialized.backtraces.get(0);
122+
List<Object> backtrace = deserialized.backtraces.get(0);
123123
assertThat(backtrace.get(0)).isEqualTo(SquashBacktrace.THREAD_0);
124124
assertThat(backtrace.get(1)).isEqualTo(true);
125125
List<List<Object>> stackElements = (List<List<Object>>) backtrace.get(2);
@@ -134,13 +134,19 @@ private void assertBacktracesMatch(StackTraceElement[] myLittleStackTrace,
134134
assertThat(nested1.class_name).isEqualTo(nestedException.getClass().getName());
135135
assertThat(nested1.ivars).isEmpty();
136136
assertThat(nested1.message).isEqualTo(nestedExceptionMessage);
137-
assertBacktracesMatch(nestedStackTrace, nested1.backtraces);
137+
backtrace = nested1.backtraces.get(0);
138+
assertThat(backtrace.get(0)).isEqualTo(SquashBacktrace.THREAD_0);
139+
assertThat(backtrace.get(1)).isEqualTo(true);
140+
assertBacktracesMatch(nestedStackTrace, (List<List<Object>>) backtrace.get(2));
138141

139142
final SquashBacktrace.NestedException nested2 = nestedExceptions.get(1);
140143
assertThat(nested2.class_name).isEqualTo(doublyNestedException.getClass().getName());
141144
assertThat(nested2.ivars).isEmpty();
142145
assertThat(nested2.message).isEqualTo(doublyNestedExceptionMessage);
143-
assertBacktracesMatch(doublyNestedStackTrace, nested2.backtraces);
146+
backtrace = nested1.backtraces.get(0);
147+
assertThat(backtrace.get(0)).isEqualTo(SquashBacktrace.THREAD_0);
148+
assertThat(backtrace.get(1)).isEqualTo(true);
149+
assertBacktracesMatch(nestedStackTrace, (List<List<Object>>) backtrace.get(2));
144150
}
145151

146152
private class EntryFactory {

0 commit comments

Comments
 (0)