【问题标题】:java.lang.OutOfMemoryError: PermGen space + java [duplicate]java.lang.OutOfMemoryError:PermGen 空间 + java [重复]
【发布时间】:2014-04-17 00:58:17
【问题描述】:

当我要发送带有 FTL teampate 的邮件并附上图像时,我遇到了以下异常。请告知需要做什么

            java.lang.OutOfMemoryError: PermGen space
             at sun.security.provider.certpath.UntrustedChecker.check(UntrustedChecker.java:58)
             at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:117)
             at sun.security.provider.certpath.PKIXCertPathValidator.doValidate(PKIXCertPathValidator.java:330)
             at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:178)
             at java.security.cert.CertPathValidator.validate(CertPathValidator.java:250)
             at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:275)
             at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:263)
             at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:173)
             at sun.security.validator.Validator.validate(Validator.java:218)
             at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
             at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
             at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
             at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185)
             at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136)
             at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
             at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
             at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:958)
             at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)
             at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:654)
             at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:100)
             at com.sun.mail.util.TraceOutputStream.write(TraceOutputStream.java:101)
             at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
             at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
             at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1418)
             at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1408)
             at com.sun.mail.smtp.SMTPTransport.ehlo(SMTPTransport.java:847)
             at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:384)
             at javax.mail.Service.connect(Service.java:297)
             at javax.mail.Service.connect(Service.java:156)
             at javax.mail.Service.connect(Service.java:105)
             at javax.mail.Transport.send0(Transport.java:168)
             at javax.mail.Transport.send(Transport.java:98)
            java.lang.OutOfMemoryError: PermGen space
            Exception in thread "http-bio-8080-exec-17" java.lang.OutOfMemoryError: PermGen space
            Exception in thread "bitronix-scheduler" java.lang.OutOfMemoryError: PermGen space

【问题讨论】:

    标签: java heap-memory


    【解决方案1】:

    这个错误是由PermGen空间引起的,它在执行期间被填满了,你可以针对这个问题做两件事:

    首先:通过添加以下参数来增加PermGen的大小:

    -XX:MaxPermSize=256m
    

    第二:启用PermGen空间上的GC进行垃圾回收

    -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled
    

    【讨论】:

    • OP 注意:这些标志是 jdk、jdk 版本和 jdk 供应商特定的,因此它们可能不会做任何事情。
    • 嘿,谢谢上面的解决方案锻炼我
    猜你喜欢
    • 2012-08-05
    • 2014-06-22
    • 2012-09-16
    • 1970-01-01
    • 2011-03-07
    • 2013-09-01
    • 2011-04-14
    • 2012-10-21
    • 2011-07-28
    相关资源
    最近更新 更多