Search in sources :

Example 1 with Cause

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) {
    }
}
Also used : MutableSpan(brave.handler.MutableSpan) Cause(brave.handler.SpanHandler.Cause) TraceContext(brave.propagation.TraceContext) SpanHandler(brave.handler.SpanHandler) Test(org.junit.Test)

Aggregations

MutableSpan (brave.handler.MutableSpan)1 SpanHandler (brave.handler.SpanHandler)1 Cause (brave.handler.SpanHandler.Cause)1 TraceContext (brave.propagation.TraceContext)1 Test (org.junit.Test)1