美文网首页Java 杂谈
NullPointerException异常丢失堆栈信息

NullPointerException异常丢失堆栈信息

作者: 醉里挑灯看剑422 | 来源:发表于2018-10-16 23:41 被阅读2次

    问题描述

    手下一个项目,日志中存在以下没有任何堆栈信息的异常:


    这是Hotspot虚拟机的fast throw机制对抛出异常的优化导致。当nullpointer、除零等异常在相同位置抛出一定多次后,优化机制会去掉堆栈信息缩短抛出流程的时间。

    solution

    增加启动参数:-XX:-OmitStackTraceInFastThrow。例:

    • 命令行方式
    java -XX:-OmitStackTraceInFastThrow -classpath . NpeThief
    
    • tomcat启动参数
    Environment='CATALINA_OPTS=-Xms512M -Xmx2048M -server -XX:+UseParallelGC -XX:-OmitStackTraceInFastThrow'
    

    参考

    1.http://jawspeak.com/2010/05/26/hotspot-caused-exceptions-to-lose-their-stack-traces-in-production-and-the-fix/
    2.https://stackoverflow.com/questions/16568253/difference-between-jvm-and-hotspot

    相关文章

      网友评论

        本文标题:NullPointerException异常丢失堆栈信息

        本文链接:https://www.haomeiwen.com/subject/vbnkzftx.html