Skip to content

Commit afeb5ce

Browse files
authored
KTOR-1647 Avoid reflection access for SensitivityWatchEventModifier on Android (#3219)
1 parent 34e9d51 commit afeb5ce

File tree

1 file changed

+10
-6
lines changed
  • ktor-server/ktor-server-host-common/jvm/src/io/ktor/server/engine/internal

1 file changed

+10
-6
lines changed

ktor-server/ktor-server-host-common/jvm/src/io/ktor/server/engine/internal/AutoReloadUtils.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,14 @@ internal fun Class<*>.takeIfNotFacade(): KClass<*>? =
6565
if (getAnnotation(Metadata::class.java)?.takeIf { it.kind == 1 } != null) kotlin else null
6666

6767
@Suppress("FunctionName")
68-
internal fun get_com_sun_nio_file_SensitivityWatchEventModifier_HIGH(): WatchEvent.Modifier? = try {
69-
val modifierClass = Class.forName("com.sun.nio.file.SensitivityWatchEventModifier")
70-
val field = modifierClass.getField("HIGH")
71-
field.get(modifierClass) as? WatchEvent.Modifier
72-
} catch (cause: Exception) {
73-
null
68+
internal fun get_com_sun_nio_file_SensitivityWatchEventModifier_HIGH(): WatchEvent.Modifier? {
69+
if (System.getenv("ANDROID_DATA") != null) return null
70+
71+
return try {
72+
val modifierClass = Class.forName("com.sun.nio.file.SensitivityWatchEventModifier")
73+
val field = modifierClass.getField("HIGH")
74+
field.get(modifierClass) as? WatchEvent.Modifier
75+
} catch (cause: Throwable) {
76+
null
77+
}
7478
}

0 commit comments

Comments
 (0)