Denees
Denees

Reputation: 9198

Maven "Exception in thread "http-bio-8080-exec-32" java.lang.OutOfMemoryError: PermGen space"

I made a project in NetBeans under Ubuntu 11.10 with Struts2 + Spring and Hibernate frameworks. The first run is ok, but when I run it for the second or third time I keep getting this exception. Without Maven all goes well. I installed maven with apt-get install, and yes I added this line export MAVEN_OPTS=-Xmx512m in usr/bin/mvn, but without luck. How to get a better performance from it?

Upvotes: 5

Views: 25959

Answers (3)

Jaanus
Jaanus

Reputation: 16541

You should add this line:

export MAVEN_OPTS="-Xmx512M -XX:MaxPermSize=512M" 

Note that some users have reported that the double quotes give problems, hence you might want to use:

export MAVEN_OPTS=-Xmx512M -XX:MaxPermSize=512M 

EDIT:

Since you are using Tomcat, use this:

  1. Open up tomcat/bin/catalina.sh
  2. add this line to the JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
  3. Save and exit , restart Tomcat

More information here...

Upvotes: 5

pengibot
pengibot

Reputation: 1552

permgen space usually throws this error when objects do not clear up their memory properly. usually cause of 'islands' which is objects with references still pointing to them but you as the programmer dont have access to these references because they live outside your space. you are probably using a library which is causing this problem, and it probably wont go away till you stop using this library. as for which library, i am not sure, there are plenty of articles explaining how to find this out, but it is a chore and may take a while unless you are lucky. memory profilers can give some idea.

good explanation article

Upvotes: 4

Petar Minchev
Petar Minchev

Reputation: 47373

-Xmx512m won't help you, because you are increasing the heap space. You are run out of PermGen space, not of heap space.

Try to increase the PermGen space and put some flags for garbaging it. Here is more information: Recurring "PermGen" in Tomcat 6

Upvotes: 3

Related Questions