ClassLoader leak 泄漏

内存泄漏中有一个最可怕、在JDK6.0以前都无法克服的BUG,就是ClassLoader泄漏,本站有过专门讨论classloader的复杂性。

当我们在服务器反复部署一个应用时,服务器会报:Caught exception (java.lang.OutOfMemoryError: PermGen space) executing org.apache.jk.common.ChannelSocket 之类PermGen space错误,这就是由于ClassLoader泄漏造成的。

老外在他的博客中详细分析了产生原因:
http://blogs.sun.com/fkieviet/entry/classloader_leaks_the_dreaded_java

没兴趣去关心这些底层的东西,jdk6对待这个问题如何呢?不过有大批的库暂时在jdk6里是不能作业的,比如spring的一部分库。
暂时还在5里扑腾,特别是应用服务器,他们升级jdk的速度简直比蜗牛还慢。
[该贴被freebox于2008-09-02 20:20修改过]

用jdon+hibernate开发,在jboss中反复部署两次就必须重启,这也是ClassLoader leak 泄漏吗?

是的,典型的classloader leak,我也碰到过几次,所以,专门研究一下,才发现上述博客文章。

我在用hibernate重构jivejdon以学习hibernate,因为要重启jboss,进度慢啊!