From afeb5ce05af162ac2073952208d28d74cf06c3fd Mon Sep 17 00:00:00 2001 From: Leonid Stashevsky Date: Tue, 25 Oct 2022 13:41:28 +0300 Subject: [PATCH] KTOR-1647 Avoid reflection access for SensitivityWatchEventModifier on Android (#3219) --- .../server/engine/internal/AutoReloadUtils.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ktor-server/ktor-server-host-common/jvm/src/io/ktor/server/engine/internal/AutoReloadUtils.kt b/ktor-server/ktor-server-host-common/jvm/src/io/ktor/server/engine/internal/AutoReloadUtils.kt index 74b7290bfbf..73fa8fe4da3 100644 --- a/ktor-server/ktor-server-host-common/jvm/src/io/ktor/server/engine/internal/AutoReloadUtils.kt +++ b/ktor-server/ktor-server-host-common/jvm/src/io/ktor/server/engine/internal/AutoReloadUtils.kt @@ -65,10 +65,14 @@ internal fun Class<*>.takeIfNotFacade(): KClass<*>? = if (getAnnotation(Metadata::class.java)?.takeIf { it.kind == 1 } != null) kotlin else null @Suppress("FunctionName") -internal fun get_com_sun_nio_file_SensitivityWatchEventModifier_HIGH(): WatchEvent.Modifier? = try { - val modifierClass = Class.forName("com.sun.nio.file.SensitivityWatchEventModifier") - val field = modifierClass.getField("HIGH") - field.get(modifierClass) as? WatchEvent.Modifier -} catch (cause: Exception) { - null +internal fun get_com_sun_nio_file_SensitivityWatchEventModifier_HIGH(): WatchEvent.Modifier? { + if (System.getenv("ANDROID_DATA") != null) return null + + return try { + val modifierClass = Class.forName("com.sun.nio.file.SensitivityWatchEventModifier") + val field = modifierClass.getField("HIGH") + field.get(modifierClass) as? WatchEvent.Modifier + } catch (cause: Throwable) { + null + } }