java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space

java, memory-leaks, out-of-memory, tomcat

Solution

It always makes sense to specify what the "many values" are that you've already tried.

First of all: They'd need to be `JAVA_OPTS`, but that might also be a typo just in this question. However, it's even better to use `CATALINA_OPTS`.

Most important, when there are PermGen errors, `-Xmx` doesn't help at all. You want to set `-XX:MaxPermSize=256m` (or some other amount of memory). You'll find a lot of information about this issue when you just google the error message - PermGen is a specific region of memory that the Sun/Oracle JVM uses. Increasing the available Heap memory doesn't help at all.

Problem

every body i got exception when i run server ,i think it's memory leaks! i tried many values of parameter JAVA_OPS and still got exception!!! In console i got this exception you can see as below! ``` Nov 18, 2013 2:48:48 PM org.apache.catalina.startup.HostConfig deployDescriptors SEVERE: Error waiting for multi-thread deployment of context descriptors to complete java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) at java.util.concurrent.FutureTask.get(Unknown Source) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:578) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1401) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:317) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1140) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.OutOfMemoryError: PermGen space Exception in thread "main" java.lang.OutOfMemoryError: PermGen space ```

Original source