From e804b58f5f1ab1aa15fcfa6ffa69f994b034da37 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 10 Jul 2019 20:21:35 +0300 Subject: [PATCH] Fix getting logger factory in 182 --- .../AbstractGradleMultiplatformWizardTest.kt | 2 +- .../jetbrains/kotlin/gradle/loggerCompat.kt | 14 ++++++++++++ .../kotlin/gradle/loggerCompat.kt.182 | 22 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/loggerCompat.kt create mode 100644 idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/loggerCompat.kt.182 diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/AbstractGradleMultiplatformWizardTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/AbstractGradleMultiplatformWizardTest.kt index 19334399b6a..aece78e0ca9 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/AbstractGradleMultiplatformWizardTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/AbstractGradleMultiplatformWizardTest.kt @@ -93,7 +93,7 @@ abstract class AbstractGradleMultiplatformWizardTest : ProjectWizardTestCase { + return Logger.getFactory().javaClass +} \ No newline at end of file diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/loggerCompat.kt.182 b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/loggerCompat.kt.182 new file mode 100644 index 00000000000..d75e7edc596 --- /dev/null +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/loggerCompat.kt.182 @@ -0,0 +1,22 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle + +import com.intellij.openapi.diagnostic.Logger +import java.lang.reflect.Modifier + +// BUNCH: 182 +internal fun getLoggerFactory(): Class { + val factoryField = Logger::class.java.declaredFields.single { Modifier.isStatic(it.modifiers) && !Modifier.isFinal(it.modifiers) } + val oldIsAccessible = factoryField.isAccessible + try { + factoryField.isAccessible = true + @Suppress("UNCHECKED_CAST") + return factoryField.get(null).javaClass as Class + } finally { + factoryField.isAccessible = oldIsAccessible + } +} \ No newline at end of file