ktlint-maven-plugin issue with JDK 16
pklerehag opened this issue · comments
ktlint-maven-plugin:1.9.0 fails when using JDK 16
Steps to reproduce
Run mvn com.github.gantsign.maven:ktlint-maven-plugin:1.9.0:check
on any (this) kotlin project using JDK 16 will result in the following error
[ERROR] : Unable to make protected void java.util.ResourceBundle.setParent(java.util.ResourceBundle) accessible: module java.base does not "opens java.util" to unnamed module...
See https://youtrack.jetbrains.com/issue/KT-44624
It's fixed in kotlin 1.5
and kotlin-parent
seems to already have that so maybe we just need a new release.
Hi @pklerehag,
I also noticed this error in d ktlint-maven-plugin
. And you are totally correct. The incompatibility between Java 16 and Kotlin 1.5.0
is fixed already. It seems that only this plugin needs a new build.
Lets hope that this will be fixed soon.
Here are some more logs:
mvn ktlint:check
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< de.*** >------------------------
[INFO] Building *** 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- ktlint-maven-plugin:1.9.0:check (default-cli) @ *** ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.519 s
[INFO] Finished at: 2021-05-06T09:58:19+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.gantsign.maven:ktlint-maven-plugin:1.9.0:check (default-cli) on project ***: Execution default-cli of goal com.github.gantsign.maven:ktlint-maven-plugin:1.9.0:check failed: An API incompatibility was encountered while executing com.github.gantsign.maven:ktlint-maven-plugin:1.9.0:check: java.lang.ExceptionInInitializerError: null
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>com.github.gantsign.maven:ktlint-maven-plugin:1.9.0
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/***/.m2/repository/com/github/gantsign/maven/ktlint-maven-plugin/1.9.0/ktlint-maven-plugin-1.9.0.jar
[ERROR] urls[1] = file:/Users/***/.m2/repository/com/github/gantsign/maven/doxia/doxia-sink-api-ktx/1.1.0/doxia-sink-api-ktx-1.1.0.jar
[ERROR] urls[2] = file:/Users/***/.m2/repository/org/apache/maven/doxia/doxia-core/1.9.1/doxia-core-1.9.1.jar
[ERROR] urls[3] = file:/Users/***/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar
[ERROR] urls[4] = file:/Users/***/.m2/repository/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar
[ERROR] urls[5] = file:/Users/***/.m2/repository/org/apache/httpcomponents/httpclient/4.5.8/httpclient-4.5.8.jar
[ERROR] urls[6] = file:/Users/***/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[ERROR] urls[7] = file:/Users/***/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar
[ERROR] urls[8] = file:/Users/***/.m2/repository/org/apache/httpcomponents/httpcore/4.4.11/httpcore-4.4.11.jar
[ERROR] urls[9] = file:/Users/***/.m2/repository/com/pinterest/ktlint/ktlint-core/0.41.0/ktlint-core-0.41.0.jar
[ERROR] urls[10] = file:/Users/***/.m2/repository/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.4.31/kotlin-compiler-embeddable-1.4.31.jar
[ERROR] urls[11] = file:/Users/***/.m2/repository/org/jetbrains/kotlin/kotlin-script-runtime/1.4.31/kotlin-script-runtime-1.4.31.jar
[ERROR] urls[12] = file:/Users/***/.m2/repository/org/jetbrains/kotlin/kotlin-reflect/1.4.31/kotlin-reflect-1.4.31.jar
[ERROR] urls[13] = file:/Users/***/.m2/repository/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.4.31/kotlin-daemon-embeddable-1.4.31.jar
[ERROR] urls[14] = file:/Users/***/.m2/repository/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar
[ERROR] urls[15] = file:/Users/***/.m2/repository/org/ec4j/core/ec4j-core/0.3.0/ec4j-core-0.3.0.jar
[ERROR] urls[16] = file:/Users/***/.m2/repository/com/pinterest/ktlint/ktlint-reporter-plain/0.41.0/ktlint-reporter-plain-0.41.0.jar
[ERROR] urls[17] = file:/Users/***/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
[ERROR] urls[18] = file:/Users/***/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar
[ERROR] urls[19] = file:/Users/***/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar
[ERROR] urls[20] = file:/Users/***/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.9.1/doxia-sink-api-1.9.1.jar
[ERROR] urls[21] = file:/Users/***/.m2/repository/org/apache/maven/doxia/doxia-logging-api/1.9.1/doxia-logging-api-1.9.1.jar
[ERROR] urls[22] = file:/Users/***/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-annotations/3.6.0/maven-plugin-annotations-3.6.0.jar
[ERROR] urls[23] = file:/Users/***/.m2/repository/org/apache/maven/reporting/maven-reporting-impl/3.0.0/maven-reporting-impl-3.0.0.jar
[ERROR] urls[24] = file:/Users/***/.m2/repository/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
[ERROR] urls[25] = file:/Users/***/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
[ERROR] urls[26] = file:/Users/***/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
[ERROR] urls[27] = file:/Users/***/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
[ERROR] urls[28] = file:/Users/***/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
[ERROR] urls[29] = file:/Users/***/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[30] = file:/Users/***/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[31] = file:/Users/***/.m2/repository/org/apache/maven/doxia/doxia-decoration-model/1.7.4/doxia-decoration-model-1.7.4.jar
[ERROR] urls[32] = file:/Users/***/.m2/repository/org/apache/maven/doxia/doxia-site-renderer/1.7.4/doxia-site-renderer-1.7.4.jar
[ERROR] urls[33] = file:/Users/***/.m2/repository/org/apache/maven/doxia/doxia-skin-model/1.7.4/doxia-skin-model-1.7.4.jar
[ERROR] urls[34] = file:/Users/***/.m2/repository/org/apache/maven/doxia/doxia-module-xhtml/1.7/doxia-module-xhtml-1.7.jar
[ERROR] urls[35] = file:/Users/***/.m2/repository/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
[ERROR] urls[36] = file:/Users/***/.m2/repository/org/codehaus/plexus/plexus-velocity/1.2/plexus-velocity-1.2.jar
[ERROR] urls[37] = file:/Users/***/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7.jar
[ERROR] urls[38] = file:/Users/***/.m2/repository/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar
[ERROR] urls[39] = file:/Users/***/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
[ERROR] urls[40] = file:/Users/***/.m2/repository/commons-digester/commons-digester/1.8/commons-digester-1.8.jar
[ERROR] urls[41] = file:/Users/***/.m2/repository/commons-chain/commons-chain/1.1/commons-chain-1.1.jar
[ERROR] urls[42] = file:/Users/***/.m2/repository/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar
[ERROR] urls[43] = file:/Users/***/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar
[ERROR] urls[44] = file:/Users/***/.m2/repository/sslext/sslext/1.2-0/sslext-1.2-0.jar
[ERROR] urls[45] = file:/Users/***/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
[ERROR] urls[46] = file:/Users/***/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar
[ERROR] urls[47] = file:/Users/***/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.3.3/maven-shared-utils-3.3.3.jar
[ERROR] urls[48] = file:/Users/***/.m2/repository/commons-io/commons-io/2.6/commons-io-2.6.jar
[ERROR] urls[49] = file:/Users/***/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.31/kotlin-stdlib-jdk8-1.4.31.jar
[ERROR] urls[50] = file:/Users/***/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.4.31/kotlin-stdlib-1.4.31.jar
[ERROR] urls[51] = file:/Users/***/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.31/kotlin-stdlib-common-1.4.31.jar
[ERROR] urls[52] = file:/Users/***/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.31/kotlin-stdlib-jdk7-1.4.31.jar
[ERROR] urls[53] = file:/Users/***/.m2/repository/com/pinterest/ktlint/ktlint-reporter-checkstyle/0.41.0/ktlint-reporter-checkstyle-0.41.0.jar
[ERROR] urls[54] = file:/Users/***/.m2/repository/com/pinterest/ktlint/ktlint-reporter-json/0.41.0/ktlint-reporter-json-0.41.0.jar
[ERROR] urls[55] = file:/Users/***/.m2/repository/com/pinterest/ktlint/ktlint-ruleset-experimental/0.41.0/ktlint-ruleset-experimental-0.41.0.jar
[ERROR] urls[56] = file:/Users/***/.m2/repository/com/pinterest/ktlint/ktlint-ruleset-standard/0.41.0/ktlint-ruleset-standard-0.41.0.jar
[ERROR] urls[57] = file:/Users/***/.m2/repository/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] : Unable to make protected void java.util.ResourceBundle.setParent(java.util.ResourceBundle) accessible: module java.base does not "opens java.util" to unnamed module @8851ce1
Get this on LTS Java 17 as well
@collinpeters I tried it using ktlint-maven-plugin 1.11.2, Maven 3.8.4, Java 17.0.1, and I'm not getting this error. Are you able to provide more details?
I have similar error with ktlint-maven-plugin 1.11.2, Maven 3.8.4, Java 17.0.2, Kotlin 1.6.10
Caused by: org.apache.maven.plugin.PluginContainerException: An API incompatibility was encountered while executing com.github.gantsign.maven:ktlint-maven-plugin:1.11.2:format: java.lang.ExceptionInInitializerError: null
-----------------------------------------------------
realm = plugin>com.github.gantsign.maven:ktlint-maven-plugin:1.11.2
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/home/devel/.m2/repository/com/github/gantsign/maven/ktlint-maven-plugin/1.11.2/ktlint-maven-plugin-1.11.2.jar
urls[1] = file:/home/devel/.m2/repository/com/github/gantsign/maven/doxia/doxia-sink-api-ktx/1.3.1/doxia-sink-api-ktx-1.3.1.jar
urls[2] = file:/home/devel/.m2/repository/org/apache/maven/doxia/doxia-core/1.10/doxia-core-1.10.jar
urls[3] = file:/home/devel/.m2/repository/org/codehaus/plexus/plexus-component-annotations/2.1.0/plexus-component-annotations-2.1.0.jar
urls[4] = file:/home/devel/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
urls[5] = file:/home/devel/.m2/repository/org/apache/commons/commons-text/1.3/commons-text-1.3.jar
urls[6] = file:/home/devel/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar
urls[7] = file:/home/devel/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
urls[8] = file:/home/devel/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar
urls[9] = file:/home/devel/.m2/repository/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar
urls[10] = file:/home/devel/.m2/repository/com/pinterest/ktlint/ktlint-core/0.43.2/ktlint-core-0.43.2.jar
urls[11] = file:/home/devel/.m2/repository/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.5.31/kotlin-compiler-embeddable-1.5.31.jar
urls[12] = file:/home/devel/.m2/repository/org/jetbrains/kotlin/kotlin-script-runtime/1.5.31/kotlin-script-runtime-1.5.31.jar
urls[13] = file:/home/devel/.m2/repository/org/jetbrains/kotlin/kotlin-reflect/1.5.31/kotlin-reflect-1.5.31.jar
urls[14] = file:/home/devel/.m2/repository/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.5.31/kotlin-daemon-embeddable-1.5.31.jar
urls[15] = file:/home/devel/.m2/repository/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar
urls[16] = file:/home/devel/.m2/repository/org/ec4j/core/ec4j-core/0.3.0/ec4j-core-0.3.0.jar
urls[17] = file:/home/devel/.m2/repository/com/pinterest/ktlint/ktlint-reporter-plain/0.43.2/ktlint-reporter-plain-0.43.2.jar
urls[18] = file:/home/devel/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
urls[19] = file:/home/devel/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar
urls[20] = file:/home/devel/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar
urls[21] = file:/home/devel/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar
urls[22] = file:/home/devel/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.11.1/doxia-sink-api-1.11.1.jar
urls[23] = file:/home/devel/.m2/repository/org/apache/maven/doxia/doxia-logging-api/1.11.1/doxia-logging-api-1.11.1.jar
urls[24] = file:/home/devel/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-annotations/3.6.2/maven-plugin-annotations-3.6.2.jar
urls[25] = file:/home/devel/.m2/repository/org/apache/maven/reporting/maven-reporting-impl/3.0.0/maven-reporting-impl-3.0.0.jar
urls[26] = file:/home/devel/.m2/repository/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
urls[27] = file:/home/devel/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
urls[28] = file:/home/devel/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
urls[29] = file:/home/devel/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
urls[30] = file:/home/devel/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
urls[31] = file:/home/devel/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
urls[32] = file:/home/devel/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
urls[33] = file:/home/devel/.m2/repository/org/apache/maven/doxia/doxia-decoration-model/1.7.4/doxia-decoration-model-1.7.4.jar
urls[34] = file:/home/devel/.m2/repository/org/apache/maven/doxia/doxia-site-renderer/1.7.4/doxia-site-renderer-1.7.4.jar
urls[35] = file:/home/devel/.m2/repository/org/apache/maven/doxia/doxia-skin-model/1.7.4/doxia-skin-model-1.7.4.jar
urls[36] = file:/home/devel/.m2/repository/org/apache/maven/doxia/doxia-module-xhtml/1.7/doxia-module-xhtml-1.7.jar
urls[37] = file:/home/devel/.m2/repository/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
urls[38] = file:/home/devel/.m2/repository/org/codehaus/plexus/plexus-velocity/1.2/plexus-velocity-1.2.jar
urls[39] = file:/home/devel/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7.jar
urls[40] = file:/home/devel/.m2/repository/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar
urls[41] = file:/home/devel/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
urls[42] = file:/home/devel/.m2/repository/commons-digester/commons-digester/1.8/commons-digester-1.8.jar
urls[43] = file:/home/devel/.m2/repository/commons-chain/commons-chain/1.1/commons-chain-1.1.jar
urls[44] = file:/home/devel/.m2/repository/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar
urls[45] = file:/home/devel/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar
urls[46] = file:/home/devel/.m2/repository/sslext/sslext/1.2-0/sslext-1.2-0.jar
urls[47] = file:/home/devel/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
urls[48] = file:/home/devel/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar
urls[49] = file:/home/devel/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4.jar
urls[50] = file:/home/devel/.m2/repository/commons-io/commons-io/2.6/commons-io-2.6.jar
urls[51] = file:/home/devel/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.31/kotlin-stdlib-jdk8-1.5.31.jar
urls[52] = file:/home/devel/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.5.31/kotlin-stdlib-1.5.31.jar
urls[53] = file:/home/devel/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.31/kotlin-stdlib-common-1.5.31.jar
urls[54] = file:/home/devel/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5.31/kotlin-stdlib-jdk7-1.5.31.jar
urls[55] = file:/home/devel/.m2/repository/com/pinterest/ktlint/ktlint-reporter-checkstyle/0.43.2/ktlint-reporter-checkstyle-0.43.2.jar
urls[56] = file:/home/devel/.m2/repository/com/pinterest/ktlint/ktlint-reporter-json/0.43.2/ktlint-reporter-json-0.43.2.jar
urls[57] = file:/home/devel/.m2/repository/com/pinterest/ktlint/ktlint-ruleset-experimental/0.43.2/ktlint-ruleset-experimental-0.43.2.jar
urls[58] = file:/home/devel/.m2/repository/com/pinterest/ktlint/ktlint-ruleset-standard/0.43.2/ktlint-ruleset-standard-0.43.2.jar
urls[59] = file:/home/devel/.m2/repository/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar
Number of foreign imports: 1
import: Entry[import from realm ClassRealm[maven.api, parent: null]]
-----------------------------------------------------
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:184)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.ExceptionInInitializerError
at org.jetbrains.kotlin.com.intellij.util.exception.FrequentErrorLogger.report (FrequentErrorLogger.java:46)
at org.jetbrains.kotlin.com.intellij.util.exception.FrequentErrorLogger.info (FrequentErrorLogger.java:42)
at org.jetbrains.kotlin.com.intellij.psi.impl.DebugUtil.handleUnspecifiedTrace (DebugUtil.java:626)
at org.jetbrains.kotlin.com.intellij.psi.impl.DebugUtil.currentInvalidationTrace (DebugUtil.java:618)
at org.jetbrains.kotlin.com.intellij.psi.impl.DebugUtil.calcInvalidationTrace (DebugUtil.java:612)
at org.jetbrains.kotlin.com.intellij.psi.impl.DebugUtil.onInvalidated (DebugUtil.java:583)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.TreeElement.onInvalidated (TreeElement.java:226)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.TreeElement.invalidate (TreeElement.java:328)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.TreeElement.rawRemove (TreeElement.java:312)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.TreeElement.rawReplaceWithList (TreeElement.java:319)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.LeafElement.rawReplaceWithText (LeafElement.java:146)
at com.pinterest.ktlint.ruleset.standard.NoBlankLineBeforeRbraceRule.visit (NoBlankLineBeforeRbraceRule.kt:29)
at com.pinterest.ktlint.core.KtLint$format$1.invoke (KtLint.kt:389)
at com.pinterest.ktlint.core.KtLint$format$1.invoke (KtLint.kt:382)
at com.pinterest.ktlint.core.KtLint$visitor$2$2.invoke (KtLint.kt:313)
at com.pinterest.ktlint.core.KtLint$visitor$2$2.invoke (KtLint.kt:312)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:229)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.KtLint$visitor$2.invoke (KtLint.kt:312)
at com.pinterest.ktlint.core.KtLint$visitor$2.invoke (KtLint.kt:300)
at com.pinterest.ktlint.core.KtLint.format (KtLint.kt:382)
at com.pinterest.ktlint.core.KtLint.format (KtLint.kt:359)
at com.github.gantsign.maven.plugin.ktlint.internal.Format.formatFile (Format.kt:129)
at com.github.gantsign.maven.plugin.ktlint.internal.Format.invoke (Format.kt:100)
at com.github.gantsign.maven.plugin.ktlint.FormatMojo.execute (FormatMojo.kt:60)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private transient java.lang.Object java.lang.Throwable.backtrace accessible: module java.base does not "opens java.lang" to unnamed module @13c8ac77
at java.lang.reflect.AccessibleObject.checkCanSetAccessible (AccessibleObject.java:354)
at java.lang.reflect.AccessibleObject.checkCanSetAccessible (AccessibleObject.java:297)
at java.lang.reflect.Field.checkCanSetAccessible (Field.java:178)
at java.lang.reflect.Field.setAccessible (Field.java:172)
at org.jetbrains.kotlin.com.intellij.util.ReflectionUtil.findFieldInHierarchy (ReflectionUtil.java:153)
at org.jetbrains.kotlin.com.intellij.util.ReflectionUtil.getDeclaredField (ReflectionUtil.java:278)
at org.jetbrains.kotlin.com.intellij.openapi.util.objectTree.ThrowableInterner.<clinit> (ThrowableInterner.java:81)
at org.jetbrains.kotlin.com.intellij.util.exception.FrequentErrorLogger.report (FrequentErrorLogger.java:46)
at org.jetbrains.kotlin.com.intellij.util.exception.FrequentErrorLogger.info (FrequentErrorLogger.java:42)
at org.jetbrains.kotlin.com.intellij.psi.impl.DebugUtil.handleUnspecifiedTrace (DebugUtil.java:626)
at org.jetbrains.kotlin.com.intellij.psi.impl.DebugUtil.currentInvalidationTrace (DebugUtil.java:618)
at org.jetbrains.kotlin.com.intellij.psi.impl.DebugUtil.calcInvalidationTrace (DebugUtil.java:612)
at org.jetbrains.kotlin.com.intellij.psi.impl.DebugUtil.onInvalidated (DebugUtil.java:583)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.TreeElement.onInvalidated (TreeElement.java:226)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.TreeElement.invalidate (TreeElement.java:328)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.TreeElement.rawRemove (TreeElement.java:312)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.TreeElement.rawReplaceWithList (TreeElement.java:319)
at org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.LeafElement.rawReplaceWithText (LeafElement.java:146)
at com.pinterest.ktlint.ruleset.standard.NoBlankLineBeforeRbraceRule.visit (NoBlankLineBeforeRbraceRule.kt:29)
at com.pinterest.ktlint.core.KtLint$format$1.invoke (KtLint.kt:389)
at com.pinterest.ktlint.core.KtLint$format$1.invoke (KtLint.kt:382)
at com.pinterest.ktlint.core.KtLint$visitor$2$2.invoke (KtLint.kt:313)
at com.pinterest.ktlint.core.KtLint$visitor$2$2.invoke (KtLint.kt:312)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:229)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.ast.PackageKt.visit (package.kt:230)
at com.pinterest.ktlint.core.KtLint$visitor$2.invoke (KtLint.kt:312)
at com.pinterest.ktlint.core.KtLint$visitor$2.invoke (KtLint.kt:300)
at com.pinterest.ktlint.core.KtLint.format (KtLint.kt:382)
at com.pinterest.ktlint.core.KtLint.format (KtLint.kt:359)
at com.github.gantsign.maven.plugin.ktlint.internal.Format.formatFile (Format.kt:129)
at com.github.gantsign.maven.plugin.ktlint.internal.Format.invoke (Format.kt:100)
at com.github.gantsign.maven.plugin.ktlint.FormatMojo.execute (FormatMojo.kt:60)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
It seems, that Jetbrains couldn't stop tinkering other's private parts.
Just facing it on Java 17.
Seems the solution is to pass --add-opens java.base/java.lang=ALL-UNNAMED
to the ktlint args according to pinterest/ktlint#1195 and pinterest/ktlint#1359.
it seems to be working if you run it via
MAVEN_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED" ./mvnw ktlint:format
Is there a way to pass this jvm args via pom?
So as far as I can tell (correct me if I'm wrong) ktlint plugin runs inside the same jvm process as maven itself.
So there is likely currently no way to pass additional arguments to the jvm from inside the plugin.
But maybe if plugin could spin up a new jvm process for ktlint that would be possible.
You can fix this problem by creating .mvn
folder and adding jvm.config
file there with this as a content:
--add-opens java.base/java.lang=ALL-UNNAMED
Then your maven build should pass. Starting from 3.3.1 version maven takes opts from jvm.config
file.
@oleksandrzaiats @mskonovalov
we have added this in our root pom.xml
file:
<properties>
<env.MAVEN_OPTS>--add-opens java.base/java.lang=ALL-UNNAMED</env.MAVEN_OPTS>
</properties>
and issue gone
Circling back to my comment from Jan 9th
Get this on LTS Java 17 as well
We only get this on format
and not check
. And it only happens with format
if there is an actual problem (i.e. if it is clean it runs fine).
Our engineers report the workaround from @daggerok is good
I have problems when using @daggerok's workaround with property, sometimes it does not work for some reason. I switched back to using the jvm.config
file as mentioned in #392 (comment)
You can fix this problem by creating
.mvn
folder and addingjvm.config
file there with this as a content:--add-opens java.base/java.lang=ALL-UNNAMED
Thank you, this workaround help me!
Thanks @Manjago for reporting this issue and everyone for their contributing their workarounds. The jvm.config
workaround is now documented in the README.md and the plugin Maven Site documentation.