Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seems like there can be some kind of bad duplicate management in TechnologyDetector #426

Closed
Riduidel opened this issue Mar 13, 2024 · 1 comment
Assignees

Comments

@Riduidel
Copy link
Owner

I had this exception some time ago

[ERROR] <o.n.a.b.ArchitectureEnhancer> Something wrong happened
java.lang.IllegalStateException: java.lang.IllegalStateException: Duplicate key org.junit.jupiter.junit-jupiter-params (attempted merging values ${junit.version} and ${junit.version})
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstanceWithCaller (Constructor.java:499)
    at java.lang.reflect.Constructor.newInstance (Constructor.java:480)
    at java.util.concurrent.ForkJoinTask.getThrowableException (ForkJoinTask.java:562)
    at java.util.concurrent.ForkJoinTask.reportException (ForkJoinTask.java:591)
    at java.util.concurrent.ForkJoinTask.invoke (ForkJoinTask.java:689)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel (ForEachOps.java:159)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel (ForEachOps.java:173)
    at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:596)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.enhancerVisitModel (ArchitectureEnhancer.java:174)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.lambda$enhancerVisitWorkspace$6 (ArchitectureEnhancer.java:142)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.withStopWatch (ArchitectureEnhancer.java:127)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.enhancerVisitWorkspace (ArchitectureEnhancer.java:138)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.lambda$enhance$4 (ArchitectureEnhancer.java:114)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept (ForEachOps.java:183)
    at java.util.stream.ReferencePipeline$2$1.accept (ReferencePipeline.java:179)
    at java.util.ArrayList.forEach (ArrayList.java:1511)
    at java.util.stream.SortedOps$RefSortingSink.end (SortedOps.java:395)
    at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:510)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential (ForEachOps.java:150)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential (ForEachOps.java:173)
    at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:596)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.lambda$enhance$5 (ArchitectureEnhancer.java:114)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.withStopWatch (ArchitectureEnhancer.java:127)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.enhance (ArchitectureEnhancer.java:112)
    at org.ndx.aadarchi.base.ArchitectureEnhancer$Proxy$_$$_WeldClientProxy.enhance (Unknown Source)
    at org.ndx.aadarchi.base.ArchitectureDocumentationBuilder.run (ArchitectureDocumentationBuilder.java:57)
    at org.ndx.aadarchi.base.ArchitectureDocumentationBuilder$Proxy$_$$_WeldClientProxy.run (Unknown Source)
    at org.ndx.aadarchi.maven.plugin.GenerateDiagramsRunnable.run (GenerateDiagramsRunnable.java:25)
    at org.ndx.aadarchi.maven.plugin.GenerateDiagramsRunnable$Proxy$_$$_WeldClientProxy.run (Unknown Source)
    at org.ndx.aadarchi.maven.cdi.helper.wrappers.AbstractCDIStarterMojo.execute (AbstractCDIStarterMojo.java:91)
    at org.ndx.aadarchi.maven.plugin.GenerateDiagramsMojo.execute (GenerateDiagramsMojo.java:49)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:301)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:211)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:165)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:157)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:121)
    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:127)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    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 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.IllegalStateException: Duplicate key org.junit.jupiter.junit-jupiter-params (attempted merging values ${junit.version} and ${junit.version})
    at java.util.stream.Collectors.duplicateKeyException (Collectors.java:135)
    at java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1 (Collectors.java:182)
    at java.util.stream.ReduceOps$3ReducingSink.accept (ReduceOps.java:169)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1625)
    at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential (ReduceOps.java:921)
    at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:682)
    at org.ndx.aadarchi.inferer.maven.technologies.TechnologyDecorator.lambda$decorateTechnology$3 (TechnologyDecorator.java:75)
    at org.ndx.aadarchi.inferer.maven.MavenPomDecorator.decorateRecursively (MavenPomDecorator.java:45)
    at org.ndx.aadarchi.inferer.maven.MavenPomDecorator.decorateRecursively (MavenPomDecorator.java:41)
    at org.ndx.aadarchi.inferer.maven.technologies.TechnologyDecorator.decorateTechnology (TechnologyDecorator.java:62)
    at org.ndx.aadarchi.inferer.maven.technologies.TechnologyDecorator$Proxy$_$$_WeldClientProxy.decorateTechnology (Unknown Source)
    at org.ndx.aadarchi.inferer.maven.MavenPomDecorator.decorate (MavenPomDecorator.java:68)
    at org.ndx.aadarchi.inferer.maven.MavenPomDecorator$Proxy$_$$_WeldClientProxy.decorate (Unknown Source)
    at org.ndx.aadarchi.inferer.maven.MavenPomReader.lambda$processModelElement$4 (MavenPomReader.java:92)
    at java.util.Optional.ifPresent (Optional.java:178)
    at org.ndx.aadarchi.inferer.maven.MavenPomReader.processModelElement (MavenPomReader.java:92)
    at org.ndx.aadarchi.inferer.maven.MavenPomReader$Proxy$_$$_WeldClientProxy.processModelElement (Unknown Source)
    at org.ndx.aadarchi.inferer.maven.enhancers.ModelElementMavenEnhancer.startEnhance (ModelElementMavenEnhancer.java:28)
    at org.ndx.aadarchi.inferer.maven.enhancers.ContainerEnhancer.startEnhance (ContainerEnhancer.java:14)
    at org.ndx.aadarchi.inferer.maven.MavenDetailsInfererEnhancer.startVisit (MavenDetailsInfererEnhancer.java:100)
    at org.ndx.aadarchi.inferer.maven.MavenDetailsInfererEnhancer$Proxy$_$$_WeldClientProxy.startVisit (Unknown Source)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.lambda$enhancerVisitSystem$17 (ArchitectureEnhancer.java:186)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.withClassLoader (ArchitectureEnhancer.java:82)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.lambda$enhancerVisitSystem$18 (ArchitectureEnhancer.java:186)
    at java.util.stream.ReferencePipeline$2$1.accept (ReferencePipeline.java:178)
    at java.util.Spliterators$ArraySpliterator.forEachRemaining (Spliterators.java:992)
    at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
    at java.util.stream.ForEachOps$ForEachTask.compute (ForEachOps.java:290)
    at java.util.concurrent.CountedCompleter.exec (CountedCompleter.java:754)
    at java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java:373)
    at java.util.concurrent.ForkJoinTask.invoke (ForkJoinTask.java:686)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel (ForEachOps.java:159)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel (ForEachOps.java:173)
    at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:596)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.enhancerVisitSystem (ArchitectureEnhancer.java:188)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.lambda$enhancerVisitModel$13 (ArchitectureEnhancer.java:173)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.withClassLoader (ArchitectureEnhancer.java:73)
    at org.ndx.aadarchi.base.ArchitectureEnhancer.lambda$enhancerVisitModel$14 (ArchitectureEnhancer.java:173)
    at java.util.stream.ReferencePipeline$15$1.accept (ReferencePipeline.java:540)
    at java.util.stream.ReferencePipeline$2$1.accept (ReferencePipeline.java:179)
    at java.util.Spliterators$ArraySpliterator.forEachRemaining (Spliterators.java:992)
    at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
    at java.util.stream.ForEachOps$ForEachTask.compute (ForEachOps.java:290)
    at java.util.concurrent.CountedCompleter.exec (CountedCompleter.java:754)
    at java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java:373)
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec (ForkJoinPool.java:1182)
    at java.util.concurrent.ForkJoinPool.scan (ForkJoinPool.java:1655)
    at java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java:1622)
    at java.util.concurrent.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:165)
@Riduidel Riduidel self-assigned this Mar 13, 2024
@Riduidel
Copy link
Owner Author

Easiest to fix that is to use the extended version of Collectors#toMap with four parameters, including the way duplicates will be merged. But how to test that ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant