Skip to content

Sporadic ConcurrentModificationException when compiling lots of method readers under Java 17 #103

@glukos

Description

@glukos
	at net.openhft.chronicle.wire.GenerateMethodReader.createClass(GenerateMethodReader.java:115)
	at net.openhft.chronicle.wire.VanillaMethodReaderBuilder.lambda$createGeneratedInstance$1(VanillaMethodReaderBuilder.java:132)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1740)
	at net.openhft.chronicle.wire.VanillaMethodReaderBuilder.createGeneratedInstance(VanillaMethodReaderBuilder.java:132)
	at net.openhft.chronicle.wire.VanillaMethodReaderBuilder.build(VanillaMethodReaderBuilder.java:172)
	at net.openhft.chronicle.wire.MethodReaderInterceptorReturnsTest.doTestInterceptorSupportedInGeneratedCode(MethodReaderInterceptorReturnsTest.java:112)
	at net.openhft.chronicle.wire.MethodReaderInterceptorReturnsTest.lambda$testInterceptingReaderConcurrentCreation$0(MethodReaderInterceptorReturnsTest.java:63)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.RuntimeException: java.util.ConcurrentModificationException
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:168)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
	at net.openhft.compiler.CachedCompiler.compileFromJava(CachedCompiler.java:112)
	at net.openhft.compiler.CachedCompiler.loadFromJava(CachedCompiler.java:151)
	at net.openhft.compiler.CachedCompiler.loadFromJava(CachedCompiler.java:77)
	at net.openhft.chronicle.wire.GenerateMethodReader.createClass(GenerateMethodReader.java:104)
	... 12 more
Caused by: java.util.ConcurrentModificationException
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1221)
	at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.pathsAndContainers(JavacFileManager.java:1018)
	at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.list(JavacFileManager.java:774)
	at net.openhft.compiler.MyJavaFileManager.list(MyJavaFileManager.java:91)
	at jdk.compiler/com.sun.tools.javac.api.ClientCodeWrapper$WrappedJavaFileManager.list(ClientCodeWrapper.java:223)
	at jdk.compiler/com.sun.tools.javac.code.ClassFinder.list(ClassFinder.java:737)
	at jdk.compiler/com.sun.tools.javac.code.ClassFinder.scanModulePaths(ClassFinder.java:609)
	at jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:557)
	at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:299)
	at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:682)
	at jdk.compiler/com.sun.tools.javac.code.Symbol$PackageSymbol.members(Symbol.java:1176)
	at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$ImportsPhase.resolveImports(TypeEnter.java:359)
	at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$ImportsPhase.runPhase(TypeEnter.java:327)
	at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$Phase.doCompleteEnvs(TypeEnter.java:288)
	at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:257)
	at jdk.compiler/com.sun.tools.javac.comp.TypeEnter.complete(TypeEnter.java:204)
	at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:682)
	at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1410)
	at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:610)
	at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:587)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1042)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:917)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
	... 18 more

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions