Menu

#116 Eclipse kepler OutOfMemoryError from More Unit plugin

Version 3.0.2
open
None
5
2015-04-22
2013-07-25
No

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=

Discussion

  • Vera Henneberger

    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?

     
  • Vera Henneberger

    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

     
  • Andrzej Ludwikowski

    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.

     
  • ochantereau

    ochantereau - 2013-10-25

    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.

     
  • Vera Henneberger

    • assigned_to: Vera Henneberger
     
  • Thomas Menzel

    Thomas Menzel - 2013-11-08

    same for me on kepler sr1 + 3.0.3

     
  • Vera Henneberger

    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.

     
  • Andrzej Ludwikowski

    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.

     
  • Duncan Jones

    Duncan Jones - 2015-04-15

    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:

    eclipse.buildId=4.4.2.M20150204-1700
    java.version=1.8.0_40
    java.vendor=Oracle Corporation
    BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_GB
    Framework arguments:  -product org.eclipse.epp.package.java.product
    Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product
    

    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...

     
  • Nicolas Demengel

    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.

     
  • Nicolas Demengel

    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.

     

Log in to post a comment.