You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sometimes our builds run into an IllegalArgumentException with the message "Recursive update" thrown by ConcurrentHashMap.
Relevant part of stack trace:
Caused by: java.lang.IllegalStateException: Recursive update
at java.util.concurrent.ConcurrentHashMap.transfer (ConcurrentHashMap.java:2552)
at java.util.concurrent.ConcurrentHashMap.addCount (ConcurrentHashMap.java:2354)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent (ConcurrentHashMap.java:1776)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.getLombokMethodDecorations (LombokDecoration.java:52)
[...]
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.lambda$getLombokMethodDecorations$1 (LombokDecoration.java:54)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent (ConcurrentHashMap.java:1708)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.getLombokMethodDecorations (LombokDecoration.java:52)
LombokDecoration#getLombokMethodDecorations calls ConcurrentHashMap#computeIfAbsent on the CACHE ConcurrentHashMap. The passed in function later again calls ConcurrentHashMap#computeIfAbsent on the same hash map. The Javadoc of ConcurrentHashMap#computeIfAbsent states: The mapping function must not modify this map during computation.
Full stack trace:
Caused by: java.lang.IllegalStateException: Recursive update
at java.util.concurrent.ConcurrentHashMap.transfer (ConcurrentHashMap.java:2552)
at java.util.concurrent.ConcurrentHashMap.addCount (ConcurrentHashMap.java:2354)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent (ConcurrentHashMap.java:1776)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.getLombokMethodDecorations (LombokDecoration.java:52)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.visitType (LombokDecoration.java:40)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.visitType (LombokDecoration.java:28)
at com.webcohesion.enunciate.javac.decorations.element.DecoratedTypeElement.accept (DecoratedTypeElement.java:230)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.applyTo (LombokDecoration.java:34)
at com.webcohesion.enunciate.javac.decorations.element.DecoratedElement.<init> (DecoratedElement.java:53)
at com.webcohesion.enunciate.javac.decorations.element.DecoratedTypeElement.<init> (DecoratedTypeElement.java:52)
at com.webcohesion.enunciate.javac.decorations.ElementDecorator.visitType (ElementDecorator.java:112)
at com.webcohesion.enunciate.javac.decorations.ElementDecorator.visitType (ElementDecorator.java:31)
at com.sun.tools.javac.code.Symbol$ClassSymbol.accept (Symbol.java:1615)
at com.webcohesion.enunciate.javac.decorations.ElementDecorator.decorate (ElementDecorator.java:58)
at com.webcohesion.enunciate.javac.decorations.DecoratedElements.getTypeElement (DecoratedElements.java:58)
at com.webcohesion.enunciate.javac.decorations.type.TypeMirrorUtils.mirrorOf (TypeMirrorUtils.java:56)
at com.webcohesion.enunciate.javac.decorations.type.DecoratedTypeMirror.isInstanceOf (DecoratedTypeMirror.java:99)
at com.webcohesion.enunciate.javac.decorations.type.DecoratedReferenceType.isInstanceOf (DecoratedReferenceType.java:44)
at com.webcohesion.enunciate.javac.decorations.type.DecoratedDeclaredType.isInstanceOf (DecoratedDeclaredType.java:73)
at com.webcohesion.enunciate.javac.decorations.element.DecoratedExecutableElement.isIs (DecoratedExecutableElement.java:142)
at com.webcohesion.enunciate.javac.decorations.element.DecoratedExecutableElement.getPropertyName (DecoratedExecutableElement.java:152)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.shouldGenerateGetter (LombokDecoration.java:70)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.lambda$getLombokMethodDecorations$0 (LombokDecoration.java:55)
at java.util.ArrayList.forEach (ArrayList.java:1596)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.lambda$getLombokMethodDecorations$1 (LombokDecoration.java:54)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent (ConcurrentHashMap.java:1708)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.getLombokMethodDecorations (LombokDecoration.java:52)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.visitType (LombokDecoration.java:40)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.visitType (LombokDecoration.java:28)
at com.webcohesion.enunciate.javac.decorations.element.DecoratedTypeElement.accept (DecoratedTypeElement.java:230)
at com.webcohesion.enunciate.modules.lombok.LombokDecoration.applyTo (LombokDecoration.java:34)
at com.webcohesion.enunciate.javac.decorations.element.DecoratedElement.<init> (DecoratedElement.java:53)
at com.webcohesion.enunciate.javac.decorations.element.DecoratedTypeElement.<init> (DecoratedTypeElement.java:52)
at com.webcohesion.enunciate.javac.decorations.ElementDecorator.visitType (ElementDecorator.java:112)
at com.webcohesion.enunciate.javac.decorations.ElementDecorator.visitType (ElementDecorator.java:31)
at com.sun.tools.javac.code.Symbol$ClassSymbol.accept (Symbol.java:1615)
at com.webcohesion.enunciate.javac.decorations.ElementDecorator.decorate (ElementDecorator.java:58)
at com.webcohesion.enunciate.EnunciateAnnotationProcessor.process (EnunciateAnnotationProcessor.java:98)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor (JavacProcessingEnvironment.java:1021)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs (JavacProcessingEnvironment.java:937)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run (JavacProcessingEnvironment.java:1265)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing (JavacProcessingEnvironment.java:1380)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations (JavaCompiler.java:1272)
at com.sun.tools.javac.main.JavaCompiler.compile (JavaCompiler.java:946)
at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0 (JavacTaskImpl.java:104)
at com.sun.tools.javac.api.JavacTaskImpl.invocationHelper (JavacTaskImpl.java:152)
at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
at com.webcohesion.enunciate.Enunciate.run (Enunciate.java:656)
at com.webcohesion.enunciate.mojo.ConfigMojo.execute (ConfigMojo.java:436)
at com.webcohesion.enunciate.mojo.DocsBaseMojo.execute (DocsBaseMojo.java:100)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke (Method.java:580)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
The text was updated successfully, but these errors were encountered:
Sometimes our builds run into an IllegalArgumentException with the message "Recursive update" thrown by ConcurrentHashMap.
Relevant part of stack trace:
LombokDecoration#getLombokMethodDecorations
callsConcurrentHashMap#computeIfAbsent
on the CACHE ConcurrentHashMap. The passed in function later again callsConcurrentHashMap#computeIfAbsent
on the same hash map. The Javadoc ofConcurrentHashMap#computeIfAbsent
states: The mapping function must not modify this map during computation.Full stack trace:
The text was updated successfully, but these errors were encountered: