skuzzle/restrict-imports-enforcer-rule

Classloader issues while locating LanguageSupport instances

Closed this issue · 1 comments

Maven integration tests seem to consistently fail when executed in parallel with

<parallelThreads>2C</parallelThreads>

Need to investigate what causes this. Running the tests in parallel cuts off a lot of build time so I'd love to turn it back on

The failure also happens occasionally happens when tests are not run in parallel. Failure details:

Caused by: java.lang.IllegalStateException: No LanguageSupport instances found!
    at de.skuzzle.enforcer.restrictimports.util.Preconditions.checkState (Preconditions.java:21)
    at de.skuzzle.enforcer.restrictimports.parser.lang.SupportedLanguageHolder.lookupImplementations (SupportedLanguageHolder.java:54)
    at de.skuzzle.enforcer.restrictimports.parser.lang.SupportedLanguageHolder.<clinit> (SupportedLanguageHolder.java:23)
    at de.skuzzle.enforcer.restrictimports.parser.lang.LanguageSupport.isLanguageSupported (LanguageSupport.java:49)
    at de.skuzzle.enforcer.restrictimports.analyze.SourceTreeAnalyzerImpl.lambda$listFiles$2 (SourceTreeAnalyzerImpl.java:109)
    at java.nio.file.Files.lambda$find$2 (Files.java:4042)
    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.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
    at java.util.stream.ReduceOps$ReduceTask.doLeaf (ReduceOps.java:960)
    at java.util.stream.ReduceOps$ReduceTask.doLeaf (ReduceOps.java:934)
    at java.util.stream.AbstractTask.compute (AbstractTask.java:327)
    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)