adoptium/emt4j

0.8.0版本分析失败 ConcurrentModificationException

Closed this issue · 3 comments

看起来是并行流里面使用了不安全的ArrayList?
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911)
at java.util.ArrayList$Itr.next(ArrayList.java:861)
at org.eclipse.emt4j.common.staticanalysis.impl.BaseAnalyzer.analyze(BaseAnalyzer.java:43)
at org.eclipse.emt4j.common.staticanalysis.impl.CLDRDateFormatAnalyzer.analyze(CLDRDateFormatAnalyzer.java:33)
at org.eclipse.emt4j.common.staticanalysis.InvokerImpl.invoke(InvokerImpl.java:117)
at org.eclipse.emt4j.common.staticanalysis.StaticAnalysisEntry.analyze(StaticAnalysisEntry.java:75)
at org.eclipse.emt4j.common.rule.impl.WholeClassRule.check(WholeClassRule.java:68)
at org.eclipse.emt4j.common.rule.ExecutableRule.execute(ExecutableRule.java:70)
at org.eclipse.emt4j.analysis.AnalysisExecutor.lambda$null$1(AnalysisExecutor.java:99)
at org.eclipse.emt4j.analysis.analyzer.ClassAnalyzer.processClass(ClassAnalyzer.java:65)
at org.eclipse.emt4j.analysis.analyzer.JarAnalyzer.analyze(JarAnalyzer.java:102)
at org.eclipse.emt4j.analysis.analyzer.JarAnalyzer.analyze(JarAnalyzer.java:81)
at org.eclipse.emt4j.analysis.analyzer.DependencyAnalyzer.iterateDo(DependencyAnalyzer.java:52)
at org.eclipse.emt4j.analysis.source.SingleJarSource.parse(SingleJarSource.java:38)
at org.eclipse.emt4j.analysis.AnalysisExecutor.lambda$execute$2(AnalysisExecutor.java:91)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401)
at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734)
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:485)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:650)
at org.eclipse.emt4j.analysis.AnalysisExecutor.execute(AnalysisExecutor.java:88)
at org.eclipse.emt4j.analysis.AnalysisMain.doAnalysis(AnalysisMain.java:105)
at org.eclipse.emt4j.analysis.AnalysisMain.main(AnalysisMain.java:52)

D-D-H commented

应该在 1fda683 中修复了,可以尝试下从 master 的代码构建出来的包

D-D-H commented

如果主干代码还有这个问题,可以重新打开这个 issue。

@D-D-H 遇到了相同的问题,现在发布的release包没有这个更新,是否可以编译更新下