Skip to content

Commit 9c19319

Browse files
authored
Add meta option to attach ANR thread dumps (#3791)
* Add meta option to attach ANR thread dumps * Update Changelog
1 parent 6259a9f commit 9c19319

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
### Features
6+
7+
- Add meta option to attach ANR thread dumps ([#3791](https://github.com/getsentry/sentry-java/pull/3791))
8+
59
### Fixes
610

711
- Deprecate `enableTracing` option ([#3777](https://github.com/getsentry/sentry-java/pull/3777))

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

+4-1
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ final class ManifestMetadataReader {
2626
static final String SAMPLE_RATE = "io.sentry.sample-rate";
2727
static final String ANR_ENABLE = "io.sentry.anr.enable";
2828
static final String ANR_REPORT_DEBUG = "io.sentry.anr.report-debug";
29-
3029
static final String ANR_TIMEOUT_INTERVAL_MILLIS = "io.sentry.anr.timeout-interval-millis";
30+
static final String ANR_ATTACH_THREAD_DUMPS = "io.sentry.anr.attach-thread-dumps";
3131

3232
static final String AUTO_INIT = "io.sentry.auto-init";
3333
static final String NDK_ENABLE = "io.sentry.ndk.enable";
@@ -176,6 +176,9 @@ static void applyMetadata(
176176
ANR_TIMEOUT_INTERVAL_MILLIS,
177177
options.getAnrTimeoutIntervalMillis()));
178178

179+
options.setAttachAnrThreadDump(
180+
readBool(metadata, logger, ANR_ATTACH_THREAD_DUMPS, options.isAttachAnrThreadDump()));
181+
179182
final String dsn = readString(metadata, logger, DSN, options.getDsn());
180183
final boolean enabled = readBool(metadata, logger, ENABLE_SENTRY, options.isEnabled());
181184

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

+25
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,31 @@ class ManifestMetadataReaderTest {
246246
assertEquals(5000.toLong(), fixture.options.anrTimeoutIntervalMillis)
247247
}
248248

249+
@Test
250+
fun `applyMetadata reads anr attach thread dump to options`() {
251+
// Arrange
252+
val bundle = bundleOf(ManifestMetadataReader.ANR_ATTACH_THREAD_DUMPS to true)
253+
val context = fixture.getContext(metaData = bundle)
254+
255+
// Act
256+
ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider)
257+
258+
// Assert
259+
assertEquals(true, fixture.options.isAttachAnrThreadDump)
260+
}
261+
262+
@Test
263+
fun `applyMetadata reads anr attach thread dump to options and keeps default`() {
264+
// Arrange
265+
val context = fixture.getContext()
266+
267+
// Act
268+
ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider)
269+
270+
// Assert
271+
assertEquals(false, fixture.options.isAttachAnrThreadDump)
272+
}
273+
249274
@Test
250275
fun `applyMetadata reads activity breadcrumbs to options`() {
251276
// Arrange

0 commit comments

Comments
 (0)