Skip to content

Commit 8131924

Browse files
ref(android): restore catch (Throwable) in captureEnvelope
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent b36d315 commit 8131924

1 file changed

Lines changed: 28 additions & 34 deletions

File tree

‎sentry-android-core/src/main/java/io/sentry/android/core/InternalSentrySdk.java‎

Lines changed: 28 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -174,45 +174,39 @@ public static SentryId captureEnvelope(
174174
return null;
175175
}
176176

177-
final @NotNull ISerializer serializer = options.getSerializer();
178-
final @NotNull EnvelopeEventState eventState;
179177
try {
180-
eventState = eventStateOf(envelope, serializer);
181-
} catch (Exception e) {
182-
// getEvent reads through a Callable, whose call() declares Exception
183-
options.getLogger().log(SentryLevel.ERROR, "Failed to inspect envelope events", e);
184-
return null;
185-
}
186-
187-
final @NotNull List<SentryEnvelopeItem> envelopeItems = new ArrayList<>();
188-
for (SentryEnvelopeItem item : envelope.getItems()) {
189-
envelopeItems.add(item);
190-
}
178+
final @NotNull ISerializer serializer = options.getSerializer();
179+
final @NotNull EnvelopeEventState eventState = eventStateOf(envelope, serializer);
191180

192-
// update session and add it to envelope if necessary
193-
final @Nullable Session.State status =
194-
eventState == EnvelopeEventState.UNHANDLED ? Session.State.Crashed : null;
195-
final @Nullable Session session =
196-
updateSession(scopes, options, status, eventState != EnvelopeEventState.NONE);
197-
if (session != null) {
198-
try {
199-
envelopeItems.add(SentryEnvelopeItem.fromSession(serializer, session));
200-
} catch (IOException e) {
201-
options.getLogger().log(SentryLevel.ERROR, "Failed to add session to envelope", e);
202-
return null;
181+
final @NotNull List<SentryEnvelopeItem> envelopeItems = new ArrayList<>();
182+
for (SentryEnvelopeItem item : envelope.getItems()) {
183+
envelopeItems.add(item);
203184
}
204-
deleteCurrentSessionFile(
205-
options,
206-
// should be sync if going to crash or already not a main thread
207-
!maybeStartNewSession || !scopes.getOptions().getThreadChecker().isMainThread());
208-
if (maybeStartNewSession) {
209-
scopes.startSession();
185+
186+
// update session and add it to envelope if necessary
187+
final @Nullable Session.State status =
188+
eventState == EnvelopeEventState.UNHANDLED ? Session.State.Crashed : null;
189+
final @Nullable Session session =
190+
updateSession(scopes, options, status, eventState != EnvelopeEventState.NONE);
191+
if (session != null) {
192+
final SentryEnvelopeItem sessionItem = SentryEnvelopeItem.fromSession(serializer, session);
193+
envelopeItems.add(sessionItem);
194+
deleteCurrentSessionFile(
195+
options,
196+
// should be sync if going to crash or already not a main thread
197+
!maybeStartNewSession || !scopes.getOptions().getThreadChecker().isMainThread());
198+
if (maybeStartNewSession) {
199+
scopes.startSession();
200+
}
210201
}
211-
}
212202

213-
final SentryEnvelope repackagedEnvelope =
214-
new SentryEnvelope(envelope.getHeader(), envelopeItems);
215-
return scopes.captureEnvelope(repackagedEnvelope);
203+
final SentryEnvelope repackagedEnvelope =
204+
new SentryEnvelope(envelope.getHeader(), envelopeItems);
205+
return scopes.captureEnvelope(repackagedEnvelope);
206+
} catch (Throwable t) {
207+
options.getLogger().log(SentryLevel.ERROR, "Failed to capture envelope", t);
208+
}
209+
return null;
216210
}
217211

218212
/**

0 commit comments

Comments
 (0)