Eclipse se estrella

I've been having problems running eclipse. This is the exception that was thrown after the crash today. I don't understand why I can't run the standard eclipse on my Linux machine. Does anyone have any idea what the problem could be? I've tried changing the JVM a hundred times. Messed with the eclipse.ini nothing seems to work.

I'm running Eclipse 64 3.7.1 on RHEL5 AMD64;

Exception in thread "Worker-4"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler i                                         n thread "Worker-4"
Exception in thread "Keep-Alive-Timer"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler i                                         n thread "Keep-Alive-Timer"
Exception in thread "Worker-2"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler i                                         n thread "Worker-2"
Exception in thread "Worker-6"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler i                                         n thread "Worker-6"
Error while logging event loop exception:
Exception in thread "Worker-3"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler i                                         n thread "Worker-3"
Exception in thread "Worker-7"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler i                                         n thread "Worker-7"
Exception in thread "[Timer] - Main Queue Handler"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler i                                         n thread "[Timer] - Main Queue Handler"
Exception in thread "Worker-5"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Worker-5"
Exception in thread "Worker-8"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Worker-8"
Exception in thread "Worker-10"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Worker-10"
Exception in thread "Worker-9" 

I have tried increasing the memory int he eclipse.ini file. Here are some more errors on crash:

Error while informing user about event loop exception:
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(
DefaultClassLoader.java:188)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(Clas
spathManager.java:601)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(Cl
asspathManager.java:567)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassIm
pl(ClasspathManager.java:490)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_L
ockClassName(ClasspathManager.java:469)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(C
lasspathManager.java:456)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalCla
ss(DefaultClassLoader.java:216)
        at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLo
ader.java:400)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(Bundl
eLoader.java:476)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:429)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:417)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(De
faultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(
DefaultClassLoader.java:188)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(Clas
spathManager.java:601)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(Cl
asspathManager.java:567)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassIm
pl(ClasspathManager.java:490)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_L
ockClassName(ClasspathManager.java:469)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(C
lasspathManager.java:456)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalCla
ss(DefaultClassLoader.java:216)
        at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLo
ader.java:400)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(Bundl
eLoader.java:476)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:429)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:417)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(De
faultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at org.eclipse.equinox.internal.p2.metadata.expression.CollectionFilter.
getInnerIterator(CollectionFilter.java:106)
        at org.eclipse.equinox.internal.p2.metadata.expression.CollectionFilter.
evaluate(CollectionFilter.java:56)
Dialog open exception:
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(
DefaultClassLoader.java:188)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(Clas
spathManager.java:601)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(Cl
asspathManager.java:567)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassIm
pl(ClasspathManager.java:490)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_L
ockClassName(ClasspathManager.java:469)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(C
lasspathManager.java:456)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalCla
ss(DefaultClassLoader.java:216)
        at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLo
ader.java:400)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(Bundl
eLoader.java:476)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:429)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:417)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(De
faultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(
DefaultClassLoader.java:188)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(Clas
spathManager.java:601)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(Cl
asspathManager.java:567)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassIm
pl(ClasspathManager.java:490)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_L
ockClassName(ClasspathManager.java:469)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(C
lasspathManager.java:456)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalCla
ss(DefaultClassLoader.java:216)
        at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLo
ader.java:400)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(Bundl
eLoader.java:476)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:429)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:417)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(De
faultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.openInternalQues
tionDialog(IDEWorkbenchErrorHandler.java:225)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.openQuestionDial
og(IDEWorkbenchErrorHandler.java:194)
Fatal error happened during workbench emergency close.
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(
DefaultClassLoader.java:188)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(Clas
spathManager.java:601)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(Cl
asspathManager.java:567)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassIm
pl(ClasspathManager.java:490)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_L
ockClassName(ClasspathManager.java:469)
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(C
lasspathManager.java:456)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalCla
ss(DefaultClassLoader.java:216)
        at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLo
ader.java:400)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(Bundl
eLoader.java:476)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:429)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:417)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(De
faultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at org.eclipse.ui.internal.Workbench.close(Workbench.java:1277)
        at org.eclipse.ui.internal.WorkbenchConfigurer.emergencyClose(WorkbenchC
onfigurer.java:165)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.closeWorkbench(I
DEWorkbenchErrorHandler.java:253)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.handleException(
IDEWorkbenchErrorHandler.java:155)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.access$0(IDEWork
benchErrorHandler.java:146)
        at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler$1.runInUIThread(
IDEWorkbenchErrorHandler.java:121)
        at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.ja                                  va:135)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3212)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.ja                                  va:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav                                  a:667)
Error while logging event loop exception:
java.lang.OutOfMemoryError: PermGen space
Logging exception:
java.lang.OutOfMemoryError: PermGen space
Error while informing user about event loop exception:
java.lang.OutOfMemoryError: PermGen space
Dialog open exception:
java.lang.OutOfMemoryError: PermGen space
Error while informing user about event loop exception:
java.lang.OutOfMemoryError: PermGen space
Dialog open exception:
java.lang.OutOfMemoryError: PermGen space
Error while logging event loop exception:
java.lang.OutOfMemoryError: PermGen space
Logging exception:
java.lang.OutOfMemoryError: PermGen space
Error while logging event loop exception:
java.lang.OutOfMemoryError: PermGen space

Here is my Eclipse.ini file:

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=256m
-Xms1024m
-Xmx1800m

I asked this question again here: Establecer el tamaño máximo de JVM fuera de Eclipse.ini and received a good answer for anyone else with this problem.

preguntado el 30 de enero de 12 a las 19:01

You might want to rethink your Xms and Xmx settings though. They are really large for normal application development. -

So far no settings are working in the ini file is there another place I can set heap and memory allocation sizes? -

3 Respuestas

There may be many underlying problems responsible for your eclipse crashing with java.lang.OutOfMemoryError.

Check whether you machine is not low on memory. You can do this with the free command. Running low on memory would most likely not manifest this way, though, unless you've disabled comprometerse en exceso.

Check your per process virtual memory size limits using the ulimit -v mando.

Allow the JVM to grab a larger heap using the -Xmx bandera.

Your eclipse may be loading a lot of plugins. Each plugin contains a number of classes and all these classes are stored in the permanent generation of the heap. Try to disable some plugins or increase permanent generation size with the -XX:MaxPermSize JVM flag.

EDITAR: Now that the question has been extended with a full stack trace and exception message string, it is apparent that permanent generation size is inadequate. Thus, as suggested above, increase its size with the -XX:MaxPermSize or try to disable some plugins. Perhaps you've recently added a plugin which includes a lot of classes?

Respondido el 31 de enero de 12 a las 02:01

For anyone else with the same problem also check out: your problem might be classloader leaks stackoverflow.com/questions/9072656/… - Randnum

Maybe stating the obvious but it says out of memory, is your computer running low on memory?

Try running it with vm args to allocate more memory.

eclipse -vmargs -Xmx512m

Respondido el 30 de enero de 12 a las 23:01

See my updates for my Eclipse.ini maybe you can spot something wrong. - Randnum

Run JProfiler and see if you can see where all the memory is going. There is a free trial available here (ej-technologies.com/download/jprofiler/trial) and eclipse supports that interface by default if I remember correctly - Usman Ismail

Going only on this log. As far as I can see this is an Memory size related issue. Have you tried taking a look at the amount of memory given too Eclipse when started? Did you perhaps configure any default JVM parameters. You might check the running Eclipse process with 'ps -aux' from the terminal after Eclipse has started.

You should see something like -Xmx512m or -XX:MaxPermSize=128m. You might also want to take a look at your eclipse.ini to see if some memory related settings is there.

Respondido el 30 de enero de 12 a las 23:01

How does my eclipse.ini look above? - Randnum

Could you also state your Eclipse, JVM and OS version. It might be that you've hit this error as stated on the Eclipse Preguntas Frecuentes - Jeroen

Eclipse 64 JEE helios 3.7.1 on Linux RHEL5 64 - Randnum

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.