use of brave.handler.SpanHandler.Cause in project brave by openzipkin.
the class NoopAwareSpanHandlerTest method doesntCrashOnNonFatalThrowable.
@Test
public void doesntCrashOnNonFatalThrowable() {
Throwable[] toThrow = new Throwable[1];
SpanHandler handler = NoopAwareSpanHandler.create(new SpanHandler[] { new SpanHandler() {
@Override
public boolean end(TraceContext context, MutableSpan span, Cause cause) {
doThrowUnsafely(toThrow[0]);
return true;
}
} }, noop);
toThrow[0] = new RuntimeException();
assertThat(handler.end(context, span, Cause.FINISHED)).isTrue();
toThrow[0] = new Exception();
assertThat(handler.end(context, span, Cause.FINISHED)).isTrue();
toThrow[0] = new Error();
assertThat(handler.end(context, span, Cause.FINISHED)).isTrue();
// fatal
toThrow[0] = new StackOverflowError();
try {
// assertThatThrownBy doesn't work with StackOverflowError
handler.end(context, span, Cause.FINISHED);
failBecauseExceptionWasNotThrown(StackOverflowError.class);
} catch (StackOverflowError e) {
}
}
Aggregations