Requested by: @markushi
Merge target: (default)
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
Behavioral Changes
SentryOkHttpInterceptor::intercept now throws IOException. This is a source-only and Java-only breaking change (#5654)
Fixes
- Don't start a redundant UI interaction transaction when a transaction is already bound to the Scope (#5491)
- Previously,
SentryGestureListener always started a UI transaction and only afterwards skipped binding it to the Scope when a manually-bound transaction already existed, leaving the new transaction to be dropped as an idle transaction without children.
- Fix potential NPE within
Scope.endSession() (#5657)
- Fix memory leak in
ReplayIntegration due to persisting executor not being shut down (#5627)
- Fix AbstractMethodError when compose-ui 1.11+ is used in combination with
Modifier.sentryTag() or the Sentry Kotlin compiler plugin (#5672)
Performance
- Speed up touch gesture target detection on deeply nested view hierarchies by hit-testing in local coordinates instead of calling
getLocationOnScreen per view (#5595)
- Probe class availability without initializing the class during SDK init (#5635)
- Avoid constructing an exception per view when resolving view ids during view-hierarchy and gesture capture (#5631)
- Start the frame metrics thread lazily on first collection instead of during SDK init (#5641)
- Reduce
SentryId and SpanId allocation overhead by replacing their per-instance LazyEvaluator (and its lock) with a lightweight lazily-generated String. (#5645)
- Lazily allocate the
ReentrantLock backing AutoClosableReentrantLock to avoid eager lock allocations for SDK objects that never contend during SentryAndroid.init (#5643)
Requested by: @markushi
Merge target: (default)
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
Behavioral Changes
SentryOkHttpInterceptor::interceptnow throwsIOException. This is a source-only and Java-only breaking change (#5654)Fixes
SentryGestureListeneralways started a UI transaction and only afterwards skipped binding it to the Scope when a manually-bound transaction already existed, leaving the new transaction to be dropped as an idle transaction without children.Scope.endSession()(#5657)ReplayIntegrationdue to persisting executor not being shut down (#5627)Modifier.sentryTag()or the Sentry Kotlin compiler plugin (#5672)Performance
getLocationOnScreenper view (#5595)SentryIdandSpanIdallocation overhead by replacing their per-instanceLazyEvaluator(and its lock) with a lightweight lazily-generatedString. (#5645)ReentrantLockbackingAutoClosableReentrantLockto avoid eager lock allocations for SDK objects that never contend duringSentryAndroid.init(#5643)