【发布时间】:2012-11-07 12:55:28
【问题描述】:
我有一个使用 java 线程池在后台执行一些繁重处理的应用程序。
线程池配置为记录执行期间发生的异常
public enum ExceptionLogger implements Thread.UncaughtExceptionHandler {
INSTANCE;
private static final Logger log = LoggerFactory.getLogger(ExceptionLogger.class);
@Override
public void uncaughtException(Thread t, Throwable e) {
log.error("Exception occurred at thread " + t.getName() + "\n", e);
}
}
在我的应用程序日志中,我随机得到java.lang.OutOfMemoryError: Java heap space,但如果我使用Runtime.getRuntime().freeMemory() 记录内存使用情况,我可以看到大量可用的可用堆空间。
此外,在我收到此异常后,应用程序继续工作。
还有什么其他原因会收到带有此消息的OutOfMemoryError?
【问题讨论】:
标签: java memory-leaks