|
5 | 5 | import io.sentry.IScopes; |
6 | 6 | import io.sentry.ISentryLifecycleToken; |
7 | 7 | import io.sentry.ITransaction; |
| 8 | +import io.sentry.SentryLevel; |
8 | 9 | import io.sentry.SentryTraceHeader; |
9 | 10 | import io.sentry.SpanDataConvention; |
10 | 11 | import io.sentry.SpanStatus; |
@@ -57,18 +58,21 @@ public SentryKafkaRecordInterceptor( |
57 | 58 | return delegateIntercept(record, consumer); |
58 | 59 | } |
59 | 60 |
|
60 | | - finishStaleContext(); |
61 | | - |
62 | | - final @NotNull IScopes forkedScopes = scopes.forkedRootScopes("SentryKafkaRecordInterceptor"); |
63 | | - final @NotNull ISentryLifecycleToken lifecycleToken = forkedScopes.makeCurrent(); |
64 | | - currentContext.set(new SentryRecordContext(lifecycleToken, null)); |
| 61 | + try { |
| 62 | + finishStaleContext(); |
65 | 63 |
|
66 | | - final @Nullable TransactionContext transactionContext = continueTrace(forkedScopes, record); |
| 64 | + final @NotNull IScopes forkedScopes = scopes.forkedRootScopes("SentryKafkaRecordInterceptor"); |
| 65 | + final @NotNull ISentryLifecycleToken lifecycleToken = forkedScopes.makeCurrent(); |
| 66 | + currentContext.set(new SentryRecordContext(lifecycleToken, null)); |
67 | 67 |
|
68 | | - final @Nullable ITransaction transaction = |
69 | | - startTransaction(forkedScopes, record, transactionContext); |
70 | | - currentContext.set(new SentryRecordContext(lifecycleToken, transaction)); |
| 68 | + final @Nullable TransactionContext transactionContext = continueTrace(forkedScopes, record); |
71 | 69 |
|
| 70 | + final @Nullable ITransaction transaction = |
| 71 | + startTransaction(forkedScopes, record, transactionContext); |
| 72 | + currentContext.set(new SentryRecordContext(lifecycleToken, transaction)); |
| 73 | + } catch (Throwable t) { |
| 74 | + scopes.getOptions().getLogger().log(SentryLevel.ERROR, "Unable to wrap Kafka consumer.", t); |
| 75 | + } |
72 | 76 | return delegateIntercept(record, consumer); |
73 | 77 | } |
74 | 78 |
|
|
0 commit comments