Slavus programing blog

My random programing (and other) tips.

Java 1.6.0_21 and Eclipse

| Comments

If you update to newest version of Java 1.6.0 update 21 and try to run Eclipse you surely seen on of this: - Unhandled event loop exception - PermGen space

So Eclipse started to become pretty unusable WTF. However for now there is simple workaround just edit your eclipse.ini like this:

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-XX:MaxPermSize=256m
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m 

You have to add -XX:MaxPermSize=256m.

The most interesting thing about this is reason why this problem reappeared, an old problem actually.

The reason is because somebody at Eclipse team hard-coded to check jvm signature by checking the file jvm.dll if the company name is “Sun Microsystems”. And as we all know because of the Sun-Oracle merge, and end of Sun existence, the company name changed to “Oracle”, and also the jvm.dll signature changed. more about this read on link

What have we learned from this, never ever hard-code a string that can change in the future, even when it is not likely to change, maybe there is some kind of “Oracle” that will come and “buy your string”.

Ref:

http://aniefer.blogspot.com/2010/07/permgen-problems-and-running-eclipse-on.html

Comments