王奕然
王奕然

Reputation: 4059

java.lang.OutOfMemoryError: PermGen space still exist

i debug a project through tomcat in eclipse,a error throw like: enter image description here enter image description here enter image description here and the eclipse is not unresponsive,the error report like

Daemon System Thread [Java2D Disposer] (Suspended (exception OutOfMemoryError)) owns: Win32GraphicsEnvironment (id=116) owns: FontStrikeDisposer (id=117) D3DGraphicsDevice.getDeviceCaps(int) line: 108 D3DGraphicsDevice.createDevice(int) line: 87
Win32GraphicsEnvironment.makeScreenDevice(int) line: 208
Win32GraphicsEnvironment(SunGraphicsEnvironment).getScreenDevices() line: 139 Win32GraphicsEnvironment.getDefaultScreenDevice() line: 96 StrikeCache.disposeStrike(FontStrikeDisposer) line: 284 FontStrikeDisposer.dispose() line: 98

when i debug again,the error report like

严重: Servlet.service() for servlet [springDispatcher] in context with path [/api] threw exception [Handler processing failed; nested exception is java.lang.OutOfMemoryError: PermGen space] with root cause java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:144) at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:41) at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:85) at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:55) at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:169) at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:149) at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:84) at org.springframework.data.redis.core.DefaultHashOperations.get(DefaultHashOperations.java:44) at com.unistrong.tracker.service.cache.UserCache.getUserToken(UserCache.java:31) at com.unistrong.tracker.handle.UserHandle.saveLogon(UserHandle.java:439) at com.unistrong.tracker.web.UserController.logon(UserController.java:98) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)

Exception in thread "Java2D Disposer"

i have change eclipse.ini and tomcat to enlarge memory,but the error still exists enter image description here enter image description here

how to solve the problem? thanks for you in advance!

Upvotes: 1

Views: 1722

Answers (1)

Crazyjavahacking
Crazyjavahacking

Reputation: 9717

You need to increase the PermGen size by java command argument:

-XX:MaxPermSize=128M

Upvotes: 1

Related Questions