Skip to content

Commit 2589f5a

Browse files
authored
Merge branch 'main' into dependabot/github_actions/codecov/codecov-action-4.6.0
2 parents 9335ec3 + ee6ab95 commit 2589f5a

File tree

34 files changed

+68
-67
lines changed

34 files changed

+68
-67
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
- Fix potential ANRs due to NDK scope sync ([#3754](https://github.com/getsentry/sentry-java/pull/3754))
1515
- Fix potential ANRs due to NDK System.loadLibrary calls ([#3670](https://github.com/getsentry/sentry-java/pull/3670))
1616
- Fix slow `Log` calls on app startup ([#3793](https://github.com/getsentry/sentry-java/pull/3793))
17+
- Fix slow Integration name parsing ([#3794](https://github.com/getsentry/sentry-java/pull/3794))
18+
- Session Replay: Reduce startup and capture overhead ([#3799](https://github.com/getsentry/sentry-java/pull/3799))
1719

1820
## 7.15.0
1921

sentry-android-core/src/main/java/io/sentry/android/core/ActivityBreadcrumbsIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void register(final @NotNull IHub hub, final @NotNull SentryOptions optio
4646
if (enabled) {
4747
application.registerActivityLifecycleCallbacks(this);
4848
options.getLogger().log(SentryLevel.DEBUG, "ActivityBreadcrumbIntegration installed.");
49-
addIntegrationToSdkVersion(getClass());
49+
addIntegrationToSdkVersion("ActivityBreadcrumbs");
5050
}
5151
}
5252

sentry-android-core/src/main/java/io/sentry/android/core/ActivityLifecycleIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public void register(final @NotNull IHub hub, final @NotNull SentryOptions optio
118118

119119
application.registerActivityLifecycleCallbacks(this);
120120
this.options.getLogger().log(SentryLevel.DEBUG, "ActivityLifecycleIntegration installed.");
121-
addIntegrationToSdkVersion(getClass());
121+
addIntegrationToSdkVersion("ActivityLifecycle");
122122
}
123123

124124
private boolean isPerformanceEnabled(final @NotNull SentryAndroidOptions options) {

sentry-android-core/src/main/java/io/sentry/android/core/AnrIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ private void register(final @NotNull IHub hub, final @NotNull SentryAndroidOptio
5959
.log(SentryLevel.DEBUG, "AnrIntegration enabled: %s", options.isAnrEnabled());
6060

6161
if (options.isAnrEnabled()) {
62-
addIntegrationToSdkVersion(getClass());
62+
addIntegrationToSdkVersion("Anr");
6363
try {
6464
options
6565
.getExecutorService()

sentry-android-core/src/main/java/io/sentry/android/core/AnrV2Integration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public void register(@NotNull IHub hub, @NotNull SentryOptions options) {
9595
options.getLogger().log(SentryLevel.DEBUG, "Failed to start AnrProcessor.", e);
9696
}
9797
options.getLogger().log(SentryLevel.DEBUG, "AnrV2Integration installed.");
98-
addIntegrationToSdkVersion(getClass());
98+
addIntegrationToSdkVersion("AnrV2");
9999
}
100100
}
101101

sentry-android-core/src/main/java/io/sentry/android/core/AppComponentsBreadcrumbsIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void register(final @NotNull IHub hub, final @NotNull SentryOptions optio
5555
options
5656
.getLogger()
5757
.log(SentryLevel.DEBUG, "AppComponentsBreadcrumbsIntegration installed.");
58-
addIntegrationToSdkVersion(getClass());
58+
addIntegrationToSdkVersion("AppComponentsBreadcrumbs");
5959
} catch (Throwable e) {
6060
this.options.setEnableAppComponentBreadcrumbs(false);
6161
options.getLogger().log(SentryLevel.INFO, e, "ComponentCallbacks2 is not available.");

sentry-android-core/src/main/java/io/sentry/android/core/AppLifecycleIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ private void addObserver(final @NotNull IHub hub) {
9696
try {
9797
ProcessLifecycleOwner.get().getLifecycle().addObserver(watcher);
9898
options.getLogger().log(SentryLevel.DEBUG, "AppLifecycleIntegration installed.");
99-
addIntegrationToSdkVersion(getClass());
99+
addIntegrationToSdkVersion("AppLifecycle");
100100
} catch (Throwable e) {
101101
// This is to handle a potential 'AbstractMethodError' gracefully. The error is triggered in
102102
// connection with conflicting dependencies of the androidx.lifecycle.

sentry-android-core/src/main/java/io/sentry/android/core/NdkIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public final void register(final @NotNull IHub hub, final @NotNull SentryOptions
5555
method.invoke(null, args);
5656

5757
this.options.getLogger().log(SentryLevel.DEBUG, "NdkIntegration installed.");
58-
addIntegrationToSdkVersion(getClass());
58+
addIntegrationToSdkVersion("Ndk");
5959
} catch (NoSuchMethodException e) {
6060
disableNdkIntegration(this.options);
6161
this.options

sentry-android-core/src/main/java/io/sentry/android/core/NetworkBreadcrumbsIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void run() {
9696
context, logger, buildInfoProvider, networkCallback);
9797
if (registered) {
9898
logger.log(SentryLevel.DEBUG, "NetworkBreadcrumbsIntegration installed.");
99-
addIntegrationToSdkVersion(getClass());
99+
addIntegrationToSdkVersion("NetworkBreadcrumbs");
100100
} else {
101101
logger.log(
102102
SentryLevel.DEBUG, "NetworkBreadcrumbsIntegration not installed.");

sentry-android-core/src/main/java/io/sentry/android/core/PhoneStateBreadcrumbsIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ private void startTelephonyListener(
8181
telephonyManager.listen(listener, android.telephony.PhoneStateListener.LISTEN_CALL_STATE);
8282

8383
options.getLogger().log(SentryLevel.DEBUG, "PhoneStateBreadcrumbsIntegration installed.");
84-
addIntegrationToSdkVersion(getClass());
84+
addIntegrationToSdkVersion("PhoneStateBreadcrumbs");
8585
} catch (Throwable e) {
8686
options
8787
.getLogger()

sentry-android-core/src/main/java/io/sentry/android/core/ScreenshotEventProcessor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public ScreenshotEventProcessor(
4646
DEBOUNCE_MAX_EXECUTIONS);
4747

4848
if (options.isAttachScreenshot()) {
49-
addIntegrationToSdkVersion(getClass());
49+
addIntegrationToSdkVersion("Screenshot");
5050
}
5151
}
5252

sentry-android-core/src/main/java/io/sentry/android/core/SendCachedEnvelopeIntegration.java

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.sentry.android.core;
22

3+
import static io.sentry.util.IntegrationUtils.addIntegrationToSdkVersion;
4+
35
import io.sentry.DataCategory;
46
import io.sentry.IConnectionStatusProvider;
57
import io.sentry.IHub;
@@ -54,6 +56,7 @@ public void register(@NotNull IHub hub, @NotNull SentryOptions options) {
5456
options.getLogger().log(SentryLevel.ERROR, "No cache dir path is defined in options.");
5557
return;
5658
}
59+
addIntegrationToSdkVersion("SendCachedEnvelope");
5760

5861
sendCachedEnvelopes(hub, this.options);
5962
}

sentry-android-core/src/main/java/io/sentry/android/core/SystemEventsBreadcrumbsIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ private void startSystemEventsReceiver(
132132
// registerReceiver can throw SecurityException but it's not documented in the official docs
133133
ContextUtils.registerReceiver(context, options, receiver, filter);
134134
options.getLogger().log(SentryLevel.DEBUG, "SystemEventsBreadcrumbsIntegration installed.");
135-
addIntegrationToSdkVersion(getClass());
135+
addIntegrationToSdkVersion("SystemEventsBreadcrumbs");
136136
} catch (Throwable e) {
137137
options.setEnableSystemEventBreadcrumbs(false);
138138
options

sentry-android-core/src/main/java/io/sentry/android/core/TempSensorBreadcrumbsIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ private void startSensorListener(final @NotNull SentryOptions options) {
8787
sensorManager.registerListener(this, defaultSensor, SensorManager.SENSOR_DELAY_NORMAL);
8888

8989
options.getLogger().log(SentryLevel.DEBUG, "TempSensorBreadcrumbsIntegration installed.");
90-
addIntegrationToSdkVersion(getClass());
90+
addIntegrationToSdkVersion("TempSensorBreadcrumbs");
9191
} else {
9292
options.getLogger().log(SentryLevel.INFO, "TYPE_AMBIENT_TEMPERATURE is not available.");
9393
}

sentry-android-core/src/main/java/io/sentry/android/core/UserInteractionIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public void register(@NotNull IHub hub, @NotNull SentryOptions options) {
121121
if (isAndroidXAvailable) {
122122
application.registerActivityLifecycleCallbacks(this);
123123
this.options.getLogger().log(SentryLevel.DEBUG, "UserInteractionIntegration installed.");
124-
addIntegrationToSdkVersion(getClass());
124+
addIntegrationToSdkVersion("UserInteraction");
125125
} else {
126126
options
127127
.getLogger()

sentry-android-core/src/main/java/io/sentry/android/core/ViewHierarchyEventProcessor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public ViewHierarchyEventProcessor(final @NotNull SentryAndroidOptions options)
5555
DEBOUNCE_MAX_EXECUTIONS);
5656

5757
if (options.isAttachViewHierarchy()) {
58-
addIntegrationToSdkVersion(getClass());
58+
addIntegrationToSdkVersion("ViewHierarchy");
5959
}
6060
}
6161

sentry-android-core/src/test/java/io/sentry/android/core/SentryAndroidTest.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.app.ApplicationExitInfo
66
import android.content.Context
77
import android.os.Build
88
import android.os.Bundle
9+
import android.os.Looper
910
import android.os.SystemClock
1011
import androidx.test.core.app.ApplicationProvider
1112
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -55,6 +56,7 @@ import org.mockito.kotlin.spy
5556
import org.mockito.kotlin.times
5657
import org.mockito.kotlin.verify
5758
import org.mockito.kotlin.whenever
59+
import org.robolectric.Shadows
5860
import org.robolectric.annotation.Config
5961
import org.robolectric.shadow.api.Shadow
6062
import org.robolectric.shadows.ShadowActivityManager
@@ -439,8 +441,10 @@ class SentryAndroidTest {
439441
await.withAlias("Failed because of BeforeSend callback above, but we swallow BeforeSend exceptions, hence the timeout")
440442
.untilTrue(asserted)
441443

444+
// Execute all posted tasks
445+
Shadows.shadowOf(Looper.getMainLooper()).idle()
446+
442447
// assert that persisted values have changed
443-
options.executorService.close(10000L) // finalizes all enqueued persisting tasks
444448
assertEquals(
445449
"TestActivity",
446450
PersistingScopeObserver.read(options, TRANSACTION_FILENAME, String::class.java)

sentry-android-fragment/src/main/java/io/sentry/android/fragment/FragmentLifecycleIntegration.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class FragmentLifecycleIntegration(
4949

5050
application.registerActivityLifecycleCallbacks(this)
5151
options.logger.log(DEBUG, "FragmentLifecycleIntegration installed.")
52-
addIntegrationToSdkVersion(javaClass)
52+
addIntegrationToSdkVersion("FragmentLifecycle")
5353
SentryIntegrationPackageStorage.getInstance()
5454
.addPackage("maven:io.sentry:sentry-android-fragment", BuildConfig.VERSION_NAME)
5555
}

sentry-android-navigation/src/main/java/io/sentry/android/navigation/SentryNavigationListener.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class SentryNavigationListener @JvmOverloads constructor(
4949
private var activeTransaction: ITransaction? = null
5050

5151
init {
52-
addIntegrationToSdkVersion(javaClass)
52+
addIntegrationToSdkVersion("NavigationListener")
5353
SentryIntegrationPackageStorage.getInstance()
5454
.addPackage("maven:io.sentry:sentry-android-navigation", BuildConfig.VERSION_NAME)
5555
}

sentry-android-okhttp/src/main/java/io/sentry/android/okhttp/SentryOkHttpInterceptor.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class SentryOkHttpInterceptor(
5454
constructor(beforeSpan: BeforeSpanCallback) : this(HubAdapter.getInstance(), beforeSpan)
5555

5656
init {
57-
addIntegrationToSdkVersion(javaClass)
57+
addIntegrationToSdkVersion("OkHttp")
5858
SentryIntegrationPackageStorage.getInstance()
5959
.addPackage("maven:io.sentry:sentry-android-okhttp", BuildConfig.VERSION_NAME)
6060
}

sentry-android-replay/src/main/java/io/sentry/android/replay/DefaultReplayBreadcrumbConverter.kt

+10-8
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ import kotlin.LazyThreadSafetyMode.NONE
1212
public open class DefaultReplayBreadcrumbConverter : ReplayBreadcrumbConverter {
1313
internal companion object {
1414
private val snakecasePattern by lazy(NONE) { "_[a-z]".toRegex() }
15-
private val supportedNetworkData = setOf(
16-
"status_code",
17-
"method",
18-
"response_content_length",
19-
"request_content_length",
20-
"http.response_content_length",
21-
"http.request_content_length"
22-
)
15+
private val supportedNetworkData by lazy(NONE) {
16+
setOf(
17+
"status_code",
18+
"method",
19+
"response_content_length",
20+
"request_content_length",
21+
"http.response_content_length",
22+
"http.request_content_length"
23+
)
24+
}
2325
}
2426

2527
private var lastConnectivityState: String? = null

sentry-android-replay/src/main/java/io/sentry/android/replay/ReplayIntegration.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public class ReplayIntegration(
119119
options.logger.log(INFO, "ComponentCallbacks is not available, orientation changes won't be handled by Session replay", e)
120120
}
121121

122-
addIntegrationToSdkVersion(javaClass)
122+
addIntegrationToSdkVersion("Replay")
123123
SentryIntegrationPackageStorage.getInstance()
124124
.addPackage("maven:io.sentry:sentry-android-replay", BuildConfig.VERSION_NAME)
125125

sentry-android-replay/src/main/java/io/sentry/android/replay/ScreenshotRecorder.kt

+14-9
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import java.util.concurrent.Executors
3636
import java.util.concurrent.ThreadFactory
3737
import java.util.concurrent.atomic.AtomicBoolean
3838
import java.util.concurrent.atomic.AtomicReference
39+
import kotlin.LazyThreadSafetyMode.NONE
3940
import kotlin.math.roundToInt
4041

4142
@TargetApi(26)
@@ -51,15 +52,19 @@ internal class ScreenshotRecorder(
5152
}
5253
private var rootView: WeakReference<View>? = null
5354
private val pendingViewHierarchy = AtomicReference<ViewHierarchyNode>()
54-
private val maskingPaint = Paint()
55-
private val singlePixelBitmap: Bitmap = Bitmap.createBitmap(
56-
1,
57-
1,
58-
Bitmap.Config.ARGB_8888
59-
)
60-
private val singlePixelBitmapCanvas: Canvas = Canvas(singlePixelBitmap)
61-
private val prescaledMatrix = Matrix().apply {
62-
preScale(config.scaleFactorX, config.scaleFactorY)
55+
private val maskingPaint by lazy(NONE) { Paint() }
56+
private val singlePixelBitmap: Bitmap by lazy(NONE) {
57+
Bitmap.createBitmap(
58+
1,
59+
1,
60+
Bitmap.Config.ARGB_8888
61+
)
62+
}
63+
private val singlePixelBitmapCanvas: Canvas by lazy(NONE) { Canvas(singlePixelBitmap) }
64+
private val prescaledMatrix by lazy(NONE) {
65+
Matrix().apply {
66+
preScale(config.scaleFactorX, config.scaleFactorY)
67+
}
6368
}
6469
private val contentChanged = AtomicBoolean(false)
6570
private val isCapturing = AtomicBoolean(true)

sentry-android-replay/src/main/java/io/sentry/android/replay/capture/BaseCaptureStrategy.kt

-4
Original file line numberDiff line numberDiff line change
@@ -209,10 +209,6 @@ internal abstract class BaseCaptureStrategy(
209209
}
210210
}
211211

212-
init {
213-
runInBackground { onChange(propertyName, initialValue, initialValue) }
214-
}
215-
216212
override fun getValue(thisRef: Any?, property: KProperty<*>): T? = value.get()
217213

218214
override fun setValue(thisRef: Any?, property: KProperty<*>, value: T?) {

sentry-android-replay/src/main/java/io/sentry/android/replay/viewhierarchy/ComposeViewHierarchyNode.kt

+8-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import androidx.compose.ui.graphics.isUnspecified
88
import androidx.compose.ui.graphics.toArgb
99
import androidx.compose.ui.layout.LayoutCoordinates
1010
import androidx.compose.ui.layout.findRootCoordinates
11-
import androidx.compose.ui.layout.positionInWindow
1211
import androidx.compose.ui.node.LayoutNode
1312
import androidx.compose.ui.node.Owner
1413
import androidx.compose.ui.semantics.SemanticsActions
@@ -87,12 +86,13 @@ internal object ComposeViewHierarchyNode {
8786
(semantics == null || !semantics.contains(SemanticsProperties.InvisibleToUser)) &&
8887
visibleRect.height() > 0 && visibleRect.width() > 0
8988
val isEditable = semantics?.contains(SemanticsActions.SetText) == true
90-
val positionInWindow = node.coordinates.positionInWindow()
9189
return when {
9290
semantics?.contains(SemanticsProperties.Text) == true || isEditable -> {
9391
val shouldMask = isVisible && node.shouldMask(isImage = false, options)
9492

9593
parent?.setImportantForCaptureToAncestors(true)
94+
// TODO: if we get reports that it's slow, we can drop this, and just mask
95+
// TODO: the whole view instead of per-line
9696
val textLayoutResults = mutableListOf<TextLayoutResult>()
9797
semantics?.getOrNull(SemanticsActions.GetTextLayoutResult)
9898
?.action
@@ -108,8 +108,8 @@ internal object ComposeViewHierarchyNode {
108108
TextViewHierarchyNode(
109109
layout = if (textLayoutResults.isNotEmpty() && !isEditable) ComposeTextLayout(textLayoutResults.first(), hasFillModifier) else null,
110110
dominantColor = textColor?.toArgb()?.toOpaque(),
111-
x = positionInWindow.x,
112-
y = positionInWindow.y,
111+
x = visibleRect.left.toFloat(),
112+
y = visibleRect.top.toFloat(),
113113
width = node.width,
114114
height = node.height,
115115
elevation = (parent?.elevation ?: 0f),
@@ -128,8 +128,8 @@ internal object ComposeViewHierarchyNode {
128128

129129
parent?.setImportantForCaptureToAncestors(true)
130130
ImageViewHierarchyNode(
131-
x = positionInWindow.x,
132-
y = positionInWindow.y,
131+
x = visibleRect.left.toFloat(),
132+
y = visibleRect.top.toFloat(),
133133
width = node.width,
134134
height = node.height,
135135
elevation = (parent?.elevation ?: 0f),
@@ -147,8 +147,8 @@ internal object ComposeViewHierarchyNode {
147147
// TODO: traverse the ViewHierarchyNode here again. For now we can recommend
148148
// TODO: using custom modifiers to obscure the entire node if it's sensitive
149149
GenericViewHierarchyNode(
150-
x = positionInWindow.x,
151-
y = positionInWindow.y,
150+
x = visibleRect.left.toFloat(),
151+
y = visibleRect.top.toFloat(),
152152
width = node.width,
153153
height = node.height,
154154
elevation = (parent?.elevation ?: 0f),

sentry-android-replay/src/main/java/io/sentry/android/replay/viewhierarchy/ViewHierarchyNode.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,8 @@ sealed class ViewHierarchyNode(
239239
private fun Class<*>.isAssignableFrom(set: Set<String>): Boolean {
240240
var cls: Class<*>? = this
241241
while (cls != null) {
242-
val canonicalName = cls.canonicalName
243-
if (canonicalName != null && set.contains(canonicalName)) {
242+
val canonicalName = cls.name
243+
if (set.contains(canonicalName)) {
244244
return true
245245
}
246246
cls = cls.superclass

sentry-android-timber/src/main/java/io/sentry/android/timber/SentryTimberIntegration.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class SentryTimberIntegration(
2929

3030
logger.log(SentryLevel.DEBUG, "SentryTimberIntegration installed.")
3131
SentryIntegrationPackageStorage.getInstance().addPackage("maven:io.sentry:sentry-android-timber", VERSION_NAME)
32-
addIntegrationToSdkVersion(javaClass)
32+
addIntegrationToSdkVersion("Timber")
3333
}
3434

3535
override fun close() {

sentry-apollo/src/main/java/io/sentry/apollo/SentryApolloInterceptor.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class SentryApolloInterceptor(
4040
constructor(beforeSpan: BeforeSpanCallback) : this(HubAdapter.getInstance(), beforeSpan)
4141

4242
init {
43-
addIntegrationToSdkVersion(javaClass)
43+
addIntegrationToSdkVersion("Apollo")
4444
SentryIntegrationPackageStorage.getInstance().addPackage("maven:io.sentry:sentry-apollo", BuildConfig.VERSION_NAME)
4545
}
4646

sentry-okhttp/src/main/java/io/sentry/okhttp/SentryOkHttpInterceptor.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public open class SentryOkHttpInterceptor(
5454
public constructor(beforeSpan: BeforeSpanCallback) : this(HubAdapter.getInstance(), beforeSpan)
5555

5656
init {
57-
addIntegrationToSdkVersion(javaClass)
57+
addIntegrationToSdkVersion("OkHttp")
5858
SentryIntegrationPackageStorage.getInstance()
5959
.addPackage("maven:io.sentry:sentry-okhttp", BuildConfig.VERSION_NAME)
6060
}

sentry/api/sentry.api

-1
Original file line numberDiff line numberDiff line change
@@ -5690,7 +5690,6 @@ public final class io/sentry/util/HttpUtils {
56905690

56915691
public final class io/sentry/util/IntegrationUtils {
56925692
public fun <init> ()V
5693-
public static fun addIntegrationToSdkVersion (Ljava/lang/Class;)V
56945693
public static fun addIntegrationToSdkVersion (Ljava/lang/String;)V
56955694
}
56965695

sentry/src/main/java/io/sentry/SendCachedEnvelopeFireAndForgetIntegration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public void register(final @NotNull IHub hub, final @NotNull SentryOptions optio
7979
options
8080
.getLogger()
8181
.log(SentryLevel.DEBUG, "SendCachedEventFireAndForgetIntegration installed.");
82-
addIntegrationToSdkVersion(getClass());
82+
addIntegrationToSdkVersion("SendCachedEnvelopeFireAndForget");
8383

8484
sendCachedEnvelopes(hub, options);
8585
}

0 commit comments

Comments
 (0)