emt4j icon indicating copy to clipboard operation
emt4j copied to clipboard

Possible Memory Leak?

Open Loloweb opened this issue 1 year ago • 0 comments

Using emt4j:process-test-classes of the Maven Plugin on a particularly large project (~700MB) with over 30 gigs of memory allocated

Failed to analyze classes
java.lang.RuntimeException: Failed to convert <com.web.viewmodels.matrix.MatrixViewModel: java.util.List getAllListDisplayedDateWithoutCurrentFilter(com.web.viewmodels.matrix.utils.MatrixFilter)>
        at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2250)
        at soot.SootMethod.retrieveActiveBody(SootMethod.java:446)
        at org.eclipse.emt4j.common.staticanalysis.impl.CLDRDateFormatAnalyzer.doAnalyze(CLDRDateFormatAnalyzer.java:40)
        at org.eclipse.emt4j.common.staticanalysis.impl.BaseAnalyzer.analyze(BaseAnalyzer.java:45)
        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.ClassAnalyzer.analyze(ClassAnalyzer.java:42)
        at org.eclipse.emt4j.analysis.analyzer.DependencyAnalyzer.iterateDo(DependencyAnalyzer.java:54)
        at org.eclipse.emt4j.analysis.source.DirectorySource.parse(DirectorySource.java:48)
        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.ForkJoinPool$WorkQueue.execLocalTasks(ForkJoinPool.java:1040)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1058)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)
Caused by: java.lang.OutOfMemoryError: Java heap space
        at java.util.HashMap.resize(HashMap.java:705)
        at java.util.HashMap.putVal(HashMap.java:664)
        at java.util.HashMap.put(HashMap.java:613)
        at java.util.HashSet.add(HashSet.java:220)
        at soot.asm.AsmMethodSource.addEdges(AsmMethodSource.java:1855)
        at soot.asm.AsmMethodSource.convert(AsmMethodSource.java:1954)
        at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2248)
        at soot.SootMethod.retrieveActiveBody(SootMethod.java:446)
        at org.eclipse.emt4j.common.staticanalysis.impl.CLDRDateFormatAnalyzer.doAnalyze(CLDRDateFormatAnalyzer.java:40)
        at org.eclipse.emt4j.common.staticanalysis.impl.BaseAnalyzer.analyze(BaseAnalyzer.java:45)
        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.AnalysisExecutor$$Lambda$46/1579936920.accept(Unknown Source)
        at org.eclipse.emt4j.analysis.analyzer.ClassAnalyzer.processClass(ClassAnalyzer.java:65)
        at org.eclipse.emt4j.analysis.analyzer.ClassAnalyzer.analyze(ClassAnalyzer.java:42)
        at org.eclipse.emt4j.analysis.analyzer.DependencyAnalyzer.iterateDo(DependencyAnalyzer.java:54)
        at org.eclipse.emt4j.analysis.source.DirectorySource.parse(DirectorySource.java:48)
        at org.eclipse.emt4j.analysis.AnalysisExecutor.lambda$execute$2(AnalysisExecutor.java:91)
        at org.eclipse.emt4j.analysis.AnalysisExecutor$$Lambda$45/1649527633.accept(Unknown Source)
        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.ForkJoinPool$WorkQueue.execLocalTasks(ForkJoinPool.java:1040)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1058)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)

using openjdk 1.8 and emt4j 0.8.0 from java 8 to 17

Loloweb avatar Sep 01 '23 09:09 Loloweb