ib_api icon indicating copy to clipboard operation
ib_api copied to clipboard

Kotlin: [Internal Error] java.lang.NoSuchFieldError: Class com.intellij.openapi.util.io.FileUtil does not have member field 'gnu.trove.TObjectHashingStrategy FILE_HASHING_STRATEGY'

Open srikumarbagaw opened this issue 1 year ago • 3 comments

Hi, I am getting this error, any ideas?

Kotlin: [Internal Error] java.lang.NoSuchFieldError: Class com.intellij.openapi.util.io.FileUtil does not have member field 'gnu.trove.TObjectHashingStrategy FILE_HASHING_STRATEGY' at org.jetbrains.kotlin.jps.targets.KotlinJvmModuleBuildTarget.updateChunkMappings(KotlinJvmModuleBuildTarget.kt:362) at org.jetbrains.kotlin.jps.build.KotlinBuilder.doBuild(KotlinBuilder.kt:463) at org.jetbrains.kotlin.jps.build.KotlinBuilder.build(KotlinBuilder.kt:299) at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1609) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1238) at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1389) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1203) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:971) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:527) at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:236) at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:134) at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:387) at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:212) at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:211) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1570)

srikumarbagaw avatar Apr 17 '24 02:04 srikumarbagaw

looks like your IDE installation is broken.. try re-installing IntelliJ IDEA ?

divinity76 avatar Mar 22 '25 17:03 divinity76

Update: has nothing to do with IDE. In pom.xml at https://github.com/al6x/ib_api/blob/0a05a5161616b612228094dbc7dce1374891b6b1/pom.xml#L36-L38

it's pulling org.jetbrains.kotlin version 1.3.72, which is plain incompatible with modern jre..
we need to update org.jetbrains.kotlin 🤔

hans@LAPTOP-O1AO16UE:~/projects/stonks/ib_api$ time ./bin/crun 
+ export MAVEN_OPTS=-ea
+ MAVEN_OPTS=-ea
+ mvn -q compile exec:java -Dexec.mainClass=AppKt
java.lang.IllegalAccessError: class com.intellij.util.io.FileChannelUtil (in unnamed module @0x6e43ddd6) cannot access class sun.nio.ch.FileChannelImpl (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x6e43ddd6
	at com.intellij.util.io.FileChannelUtil.setupUnInterruptibleHandle(FileChannelUtil.java:26)
	at com.intellij.util.io.FileChannelUtil.<clinit>(FileChannelUtil.java:18)
	at com.intellij.util.io.ReadWriteDirectBufferWrapper$FileContext$1.execute(ReadWriteDirectBufferWrapper.java:50)
	at com.intellij.util.io.ReadWriteDirectBufferWrapper$FileContext$1.execute(ReadWriteDirectBufferWrapper.java:42)
	at com.intellij.openapi.util.io.FileUtilRt.doIOOperation(FileUtilRt.java:945)
	at com.intellij.util.io.ReadWriteDirectBufferWrapper$FileContext.<init>(ReadWriteDirectBufferWrapper.java:42)
	at com.intellij.util.io.ReadWriteDirectBufferWrapper.create(ReadWriteDirectBufferWrapper.java:27)
	at com.intellij.util.io.DirectBufferWrapper.getBuffer(DirectBufferWrapper.java:24)
	at com.intellij.util.io.ReadWriteDirectBufferWrapper.getBuffer(ReadWriteDirectBufferWrapper.java:16)
	at com.intellij.util.io.PagedFileStorage$StorageLock.createValue(PagedFileStorage.java:631)
	at com.intellij.util.io.PagedFileStorage$StorageLock.get(PagedFileStorage.java:558)
	at com.intellij.util.io.PagedFileStorage$StorageLock.access$500(PagedFileStorage.java:466)
	at com.intellij.util.io.PagedFileStorage.getBufferWrapper(PagedFileStorage.java:407)
	at com.intellij.util.io.PagedFileStorage.getBuffer(PagedFileStorage.java:371)
	at com.intellij.util.io.PagedFileStorage.putInt(PagedFileStorage.java:144)
	at com.intellij.util.io.ResizeableMappedFile.putInt(ResizeableMappedFile.java:222)
	at com.intellij.util.io.PersistentEnumeratorBase.markDirty(PersistentEnumeratorBase.java:597)
	at com.intellij.util.io.PersistentEnumeratorBase.<init>(PersistentEnumeratorBase.java:185)
	at com.intellij.util.io.PersistentBTreeEnumerator.<init>(PersistentBTreeEnumerator.java:73)
	at com.intellij.util.io.PersistentEnumeratorDelegate.<init>(PersistentEnumeratorDelegate.java:47)
	at com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:149)
	at com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:138)
	at com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:129)
	at com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:121)
	at com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:114)
	at org.jetbrains.kotlin.incremental.storage.CachingLazyStorage.createMap(CachingLazyStorage.kt:106)
	at org.jetbrains.kotlin.incremental.storage.CachingLazyStorage.getStorageIfExists(CachingLazyStorage.kt:41)
	at org.jetbrains.kotlin.incremental.storage.CachingLazyStorage.getKeys(CachingLazyStorage.kt:58)
	at org.jetbrains.kotlin.incremental.snapshots.FileSnapshotMap.compareAndUpdate(FileSnapshotMap.kt:35)
	at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:83)
	at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunnerKt.makeIncrementally(IncrementalJvmCompilerRunner.kt:78)
	at org.jetbrains.kotlin.maven.K2JVMCompileMojo.runIncrementalCompiler(K2JVMCompileMojo.java:270)
	at org.jetbrains.kotlin.maven.K2JVMCompileMojo.execCompiler(K2JVMCompileMojo.java:234)
	at org.jetbrains.kotlin.maven.K2JVMCompileMojo.execCompiler(K2JVMCompileMojo.java:55)
	at org.jetbrains.kotlin.maven.KotlinCompileMojoBase.execute(KotlinCompileMojoBase.java:209)
	at org.jetbrains.kotlin.maven.K2JVMCompileMojo.execute(K2JVMCompileMojo.java:222)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:370)
	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:351)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:171)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:163)
	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:298)
	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:960)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:293)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:196)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:283)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:226)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:407)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:348)
[ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.3.72:compile (compile) on project ib_api: Compilation failure -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

real	0m1.724s
user	0m4.284s
sys	0m0.221s

divinity76 avatar Mar 22 '25 20:03 divinity76

@srikumarbagaw i think #5 should fix it, you can try manually patching in that pom.xml and run it again

PS, as of writing, ib_api is not compatible with the newest TWS API Java Driver - it must be paired with an old version right now, you can find an old compatible version at https://github.com/al6x/ib_api/issues/2#issuecomment-1475381649 🤔

divinity76 avatar Mar 22 '25 21:03 divinity76