Fix getting logger factory in 182
This commit is contained in:
+1
-1
@@ -93,7 +93,7 @@ abstract class AbstractGradleMultiplatformWizardTest : ProjectWizardTestCase<Abs
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val oldFactory = Logger.getFactory()
|
val oldFactory = getLoggerFactory()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Logger.setFactory(PrintingFactory::class.java)
|
Logger.setFactory(PrintingFactory::class.java)
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* 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<out Logger.Factory> {
|
||||||
|
return Logger.getFactory().javaClass
|
||||||
|
}
|
||||||
@@ -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<out Logger.Factory> {
|
||||||
|
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<out Logger.Factory>
|
||||||
|
} finally {
|
||||||
|
factoryField.isAccessible = oldIsAccessible
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user