Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- 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](https://github.com/getsentry/sentry-java/pull/5657))
- Fix memory leak in `ReplayIntegration` due to persisting executor not being shut down ([#5627](https://github.com/getsentry/sentry-java/pull/5627))
- Fix AbstractMethodError when compose-ui 1.11+ is used in combination with `Modifier.sentryTag()` or the Sentry Kotlin compiler plugin ([#5672](https://github.com/getsentry/sentry-java/pull/5672))

### Performance

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,15 @@ public object SentryModifier {
override fun SemanticsPropertyReceiver.applySemantics() {
this[SentryTag] = tag
}

// SemanticsModifierNode.isImportantForBounds() was added as an abstract method in
// compose-ui 1.11. Classes compiled against earlier versions lack this method in
// their bytecode, which causes AbstractMethodError when the accessibility tree is
// traversed on 1.11+ runtimes. We can't use the `override` keyword here because
// the method doesn't exist in the compile-time dependency (compose-ui 1.6.x), but
// the JVM satisfies the abstract-method requirement at runtime via signature
// matching. SentryTagModifierNode only stores a semantic tag and has no visual
// effect on layout, so it is not important for bounds.
@Suppress("unused") fun isImportantForBounds(): Boolean = false
}
}
Loading