Skip to content

Commit 8635d0a

Browse files
committed
ref(core): Make class availability package-private
Allow package-local tests to set class availability without reflection.\n\nRefs LINEAR-JAVA-654\nCo-Authored-By: Codex <noreply@openai.com>
1 parent 416b731 commit 8635d0a

2 files changed

Lines changed: 3 additions & 10 deletions

File tree

sentry/src/main/java/io/sentry/util/LoadClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
public class LoadClass {
1414

1515
// Populated by the Sentry Android Gradle plugin for class names it can resolve at build time.
16-
private static @Nullable Map<String, Boolean> classAvailability;
16+
static @Nullable Map<String, Boolean> classAvailability;
1717

1818
/**
1919
* Loads and initializes a class via reflection. Use this when you intend to actually use the

sentry/src/test/java/io/sentry/util/LoadClassTest.kt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ import kotlin.test.assertTrue
1010
class LoadClassTest {
1111
@Test
1212
fun `isClassAvailable uses known build-time results and reflects unknown classes`() {
13-
setClassAvailability(
13+
LoadClass.classAvailability =
1414
mapOf(
1515
"io.sentry.SentryEvent" to false,
1616
"io.sentry.ThisClassDoesNotExist" to true,
1717
)
18-
)
1918

2019
try {
2120
val loadClass = LoadClass()
@@ -31,7 +30,7 @@ class LoadClassTest {
3130
assertThat(loadClass.isClassAvailable("io.sentry.Sentry", null as io.sentry.ILogger?))
3231
.isTrue()
3332
} finally {
34-
setClassAvailability(null)
33+
LoadClass.classAvailability = null
3534
}
3635
}
3736

@@ -75,12 +74,6 @@ class LoadClassTest {
7574

7675
assertTrue(LoadClassInitFlag.initialized)
7776
}
78-
79-
private fun setClassAvailability(availability: Any?) {
80-
val field = LoadClass::class.java.getDeclaredField("classAvailability")
81-
field.isAccessible = true
82-
field.set(null, availability)
83-
}
8477
}
8578

8679
private object IsClassAvailableNoInitFlag {

0 commit comments

Comments
 (0)