Eclipse kepler OutOfMemoryError from More Unit plugin
Brought to you by:
gianasista
On eclipse kepler I have OutOfMemoryError, from More Unit plugin:
eclipse.buildId=4.3.0.I20130605-2000 java.version=1.7.0_25 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=pl_PL Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86 -clean -product org.eclipse.epp.package.jee.product Error Thu Jul 25 10:08:56 CEST 2013 An internal error occurred during: "Update MoreUnit Annotations". java.lang.OutOfMemoryError at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(ZipFile.java:215) at java.util.zip.ZipFile.<init>(ZipFile.java:145) at java.util.zip.ZipFile.<init>(ZipFile.java:159) at org.eclipse.jdt.internal.core.JavaModelManager.getZipFile(JavaModelManager.java:2677) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.computeClasspathLocations(JavaSearchNameEnvironment.java:98) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.<init>(JavaSearchNameEnvironment.java:53) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.initialize(MatchLocator.java:1039) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1068) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1184) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1316) at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:95) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:231) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515) at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:584) at org.moreunit.util.SearchTools.search(SearchTools.java:44) at org.moreunit.util.SearchTools.searchFor(SearchTools.java:36) at org.moreunit.matching.CorrespondingTypeSearcher.findPotentialTargets(CorrespondingTypeSearcher.java:73) at org.moreunit.matching.CorrespondingTypeSearcher.getMatches(CorrespondingTypeSearcher.java:57) at org.moreunit.elements.TypeFacade.getCorrespondingClasses(TypeFacade.java:204) at org.moreunit.elements.ClassTypeFacade.getCorrespondingTestCases(ClassTypeFacade.java:79) at org.moreunit.elements.ClassTypeFacade.getCorrespondingTestMethods(ClassTypeFacade.java:90) at org.moreunit.elements.ClassTypeFacade.hasTestMethod(ClassTypeFacade.java:149) at org.moreunit.annotation.MoreUnitAnnotationModel.annotateTestedMethods(MoreUnitAnnotationModel.java:217) at org.moreunit.annotation.MoreUnitAnnotationModel.access$2(MoreUnitAnnotationModel.java:210) at org.moreunit.annotation.MoreUnitAnnotationModel$1.run(MoreUnitAnnotationModel.java:193) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
ANd eclipse run details:
*** Date: czwartek, 25 lipca 2013 10:28:10 Czas środkowoeuropejski letni *** Platform Details: *** System properties: applicationXMI=org.eclipse.ui.workbench/LegacyIDE.e4xmi awt.toolkit=sun.awt.windows.WToolkit com.zeroturnaround.bundled.org.apache.commons.logging.Log=com.zeroturnaround.bundled.org.apache.commons.logging.impl.SimpleLog com.zeroturnaround.bundled.org.apache.commons.logging.simplelog.defaultlog=off eclipse.application=org.eclipse.ui.ide.workbench eclipse.buildId=4.3.0.I20130605-2000 eclipse.commands=-os win32 -ws win32 -arch x86 -showsplash P:\eclipse-kepler-preinstalled\\plugins\org.eclipse.platform_4.3.0.v20130605-2000\splash.bmp -launcher P:\eclipse-kepler-preinstalled\eclipse.exe -name Eclipse --launcher.library P:\eclipse-kepler-preinstalled\\plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20130521-0416\eclipse_1503.dll -startup P:\eclipse-kepler-preinstalled\\plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.appendVmargs -clean -product org.eclipse.epp.package.jee.product -vm p:/jdk1.7.0_25/jre/bin/client/jvm.dll eclipse.home.location=file:/P:/eclipse-kepler-preinstalled/ eclipse.launcher=P:\eclipse-kepler-preinstalled\eclipse.exe eclipse.launcher.name=Eclipse eclipse.p2.data.area=@config.dir/../p2/ eclipse.p2.profile=epp.package.jee eclipse.product=org.eclipse.epp.package.jee.product eclipse.startTime=1374645234616 eclipse.vm=p:/jdk1.7.0_25/jre/bin/client/jvm.dll eclipse.vmargs=-Dosgi.requiredJavaVersion=1.6 -Xms512m -Xmx1024m -XX:MaxPermSize=256m -Djava.class.path=P:\eclipse-kepler-preinstalled\\plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar equinox.use.ds=true file.encoding=Cp1250 file.encoding.pkg=sun.io file.separator=\ findbugs.cloud.default=edu.umd.cs.findbugs.cloud.doNothingCloud findbugs.home=/P:/eclipse-kepler-preinstalled/plugins/edu.umd.cs.findbugs.plugin.eclipse_2.0.2.20121210/ gosh.args=--nointeractive guice.disable.misplaced.annotation.check=true http.proxyHost=10.0.28.22 http.proxyPort=8080 java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.awt.printerjob=sun.awt.windows.WPrinterJob java.class.path=P:\eclipse-kepler-preinstalled\\plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar java.class.version=51.0 java.endorsed.dirs=p:\jdk1.7.0_25\jre\lib\endorsed java.ext.dirs=p:\jdk1.7.0_25\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext java.home=p:\jdk1.7.0_25\jre java.io.tmpdir=C:\DOCUME~1\andrzej.ludwikowski\Ustawienia lokalne\Temp\ java.library.path=P:\eclipse-kepler-preinstalled;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;p:/jdk1.7.0_25/jre/bin/client;p:/jdk1.7.0_25/jre/bin;p:/jdk1.7.0_25/jre/lib/i386;c:\ruby\bin;C:\Perl\bin\;C:\oracle\product\10.2.0\client_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\TortoiseSVN\bin;C:\Program Files\JProbe 7.0\bin;p:/jdk1.7.0_25\bin;c:\ruby\bin;C:\Perl\bin\;C:\oracle\product\10.2.0\client_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\TortoiseSVN\bin;C:\Program Files\JProbe 7.0\bin;p:/jdk1.7.0_25\bin;c:\ruby\bin;C:\Perl\bin\;C:\oracle\product\10.2.0\client_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\TortoiseSVN\bin;C:\Program Files\JProbe 7.0\bin;p:/jdk1.7.0_25\bin;C:\WINDOWS\System32 ;P:\maven2.2.1\bin;C:\Program Files\Git\cmd;C:\Program Files\Git\bin;P:\dokumenty\instalki\apache-ant-1.8.4\bin;C:\Program Files\Mercurial;C:\Program Files\TortoiseHg\ ;P:\maven2.2.1\bin;C:\Program Files\Git\cmd;C:\Program Files\Git\bin;P:\dokumenty\instalki\apache-ant-1.8.4\bin;C:\Program Files\Mercurial;C:\Program Files\TortoiseHg\ ;P:\maven2.2.1\bin;C:\Program Files\Git\cmd;C:\Program Files\Git\bin;P:\dokumenty\instalki\apache-ant-1.8.4\bin;C:\Program Files\Mercurial;C:\Program Files\TortoiseHg\;P:\eclipse-kepler-preinstalled;;. java.rmi.server.randomIDs=true java.runtime.name=Java(TM) SE Runtime Environment java.runtime.version=1.7.0_25-b17 java.specification.name=Java Platform API Specification java.specification.vendor=Oracle Corporation java.specification.version=1.7 java.vendor=Oracle Corporation java.vendor.url=http://java.oracle.com/ java.vendor.url.bug=http://bugreport.sun.com/bugreport/ java.version=1.7.0_25 java.vm.info=mixed mode java.vm.name=Java HotSpot(TM) Client VM java.vm.specification.name=Java Virtual Machine Specification java.vm.specification.vendor=Oracle Corporation java.vm.specification.version=1.7 java.vm.vendor=Oracle Corporation java.vm.version=23.25-b01 line.separator=
I don't have any problems with the current release.
Did this error happen only once?
Does the problem not occur anymore if you uninstall MoreUnit?
Hello Andrzej,
did you read my last note? We can not reproduce the problem. Do you have any further information that your memory problems are caused by our plugin?
Vera
Hi,
"Did this error happen only once" - twice on my machine, and one few times on my colleague machine.
"Do you have any further information that your memory problems are caused by our plugin" - unfortunately I'm working now with different project, so I don't have any problems with moreunit. This OOM error occurs when I was working with really huge project, thousands of classes, etc. I will try to contact with my coworkers to check if they still using and have such problem with MU.
Hi,
I have same problem, eclipse busy, long time, after that it's crash.... on Update MoreUnit Annotations operation...
Kepler Sr1 + MoreUnit 3.0.2
Thx.
From France.
same for me on kepler sr1 + 3.0.3
Update MoreUnit Annotations is a job which runs quite often (everytime when switching the active editor). I have played around with it with a memory monitor and switched very often in a workspace with lots of projects and classes but could not see any memory problems.
Perhaps anyone of you can provide some more information:
1) Did the problem get worse with the switch to 3.0.3 (we added a feature to check ignored test methods which makes the update job slower)?
2) Is the problem reproducable when switching editors very often?
3) How often does the OutOfMemoryError occur?
4) If you uninstall MoreUnit does that fix the memory issue?
5) Does the problem only occur after running eclipse for a long time (which would be a hint of a minor memory leak which cumulates after a while)
Feedback/more info on this issue is highly appreciated, thanks in advance.
1) sorry, no data
2) sorry, no data
3) once a month (a few times max)
4) probably yes, as you can see the stack trace of OOM error points directly to More Unit
5) yes
I notice that when I upgrade to eclipse kepler sr1 I never get this OOM again, but it might be a coincidence.
I'm yet to get an OOM error, but I've found my Eclipse Luna install slowing right down to a crawl during the update of annotations.
If it helps, I'm working on the Apache Commons Lang code base, so perhaps you can perform some ad-hoc testing based on that?
Eclipse details:
MoreUnit: 3.0.5
I tried to work-around this by turning off "Tested File Indicator" in Label Decorations, but it didn't work. Perhaps I misunderstand what "updating annotations" is actually doing...
Hi Duncan,
Thanks for your report. Having a code base might help to reproduce the problem, so thank you very much for the information! Also, if it happens that you changed some settings in eclipse.ini, may I ask you the memory settings of your JVM?
As for the "Updating annotations" message, it is related to the markers that are put on methods having tests.
I tried hard but could not reproduce the problem. Especially, I opened all source files of Commons Lang at once and observed what happened when annotating methods.
VisualVM didn't highlight any particularly severe memory issue in MoreUnit code either...
I would kill for a heap dump! That said, it looks like most of you are using a Win32 OS, and I made my tests on OS X (64 bits), so I guess the next step would be to test it within a Win32 VM.