diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d81e8647..4ee60757d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Add release information args to proguard mapping upload task ([#476](https://github.com/getsentry/sentry-android-gradle-plugin/pull/476)) - Auto install Sentry integrations for Java Backend, Desktop, etc. ([#521](https://github.com/getsentry/sentry-android-gradle-plugin/pull/521)) +- (Internal change) Use Hub.getSpan instead of Sentry.getSpan for database instrumentation ([#535](https://github.com/getsentry/sentry-android-gradle-plugin/pull/535)) ### Dependencies diff --git a/plugin-build/src/main/kotlin/io/sentry/android/gradle/instrumentation/AbstractSpanAddingMethodVisitor.kt b/plugin-build/src/main/kotlin/io/sentry/android/gradle/instrumentation/AbstractSpanAddingMethodVisitor.kt index 11fcdeeef..a3e64af13 100644 --- a/plugin-build/src/main/kotlin/io/sentry/android/gradle/instrumentation/AbstractSpanAddingMethodVisitor.kt +++ b/plugin-build/src/main/kotlin/io/sentry/android/gradle/instrumentation/AbstractSpanAddingMethodVisitor.kt @@ -41,7 +41,8 @@ abstract class AbstractSpanAddingMethodVisitor( } /* - ISpan span = Sentry.getSpan() + IHub hub = HubAdapter.getInstance(); + ISpan span = hub.getSpan(); ISpan child = null; if (span != null) { child = span.startChild("db", ); @@ -53,11 +54,23 @@ abstract class AbstractSpanAddingMethodVisitor( ) { visitMethodInsn( Opcodes.INVOKESTATIC, - "io/sentry/Sentry", + "io/sentry/HubAdapter", + "getInstance", + "()Lio/sentry/HubAdapter;", + /* isInterface = */ false + ) + val hubIdx = newLocal(Types.HUB) + visitVarInsn(Opcodes.ASTORE, hubIdx) // hub + visitVarInsn(Opcodes.ALOAD, hubIdx) // hub + + visitMethodInsn( + Opcodes.INVOKEVIRTUAL, + "io/sentry/IHub", "getSpan", "()Lio/sentry/ISpan;", /* isInterface = */ false ) + val spanIndex = newLocal(Types.SPAN) childIndex = newLocal(Types.SPAN) visitVarInsn(Opcodes.ASTORE, spanIndex) // span diff --git a/plugin-build/src/main/kotlin/io/sentry/android/gradle/instrumentation/util/Types.kt b/plugin-build/src/main/kotlin/io/sentry/android/gradle/instrumentation/util/Types.kt index bc3a3eab5..b25fb1cec 100644 --- a/plugin-build/src/main/kotlin/io/sentry/android/gradle/instrumentation/util/Types.kt +++ b/plugin-build/src/main/kotlin/io/sentry/android/gradle/instrumentation/util/Types.kt @@ -12,6 +12,8 @@ object Types { val ITERATOR = Type.getType("Ljava/util/Iterator;") val COLLECTION = Type.getType("Ljava/util/Collection;") + val HUB = Type.getType("Lio/sentry/IHub;") + // DB val SQL_EXCEPTION = Type.getType("Landroid/database/SQLException;") val CURSOR = Type.getType("Landroid/database/Cursor;")