- 今天在配置了修改了一下,启动tomcat的时候,出现了如下错误。
-
- #
- # A fatal error has been detected by the Java Runtime Environment:
- #
- # Internal Error (c1_Optimizer.cpp:271), pid=6048, tid=5404
- # guarantee(x_compare_res != Constant::not_comparable) failed: incomparable constants in IfOp
- #
- # JRE version: 6.0_29-b11
- # Java VM: Java HotSpot(TM) Client VM (20.4-b02 mixed mode windows-x86 )
- 2013-01-10 13:47:34,671 INFO hibernate.cfg.AnnotationBinder:419 -> Binding entity from annotated class: com.estone.www.spis.model.po.zd.sys.DPossession
- 2013-01-10 13:47:34,671 INFO cfg.annotations.EntityBinder:422 -> Bind entity com.estone.www.spis.model.po.zd.sys.DPossession on table d_possession
- 2013-01-10 13:47:34,671 INFO hibernate.cfg.AnnotationBinder:419 -> Binding entity from annotated class: com.estone.www.spis.model.po.zd.writ.DWritTemplate
- 2013-01-10 13:47:34,671 INFO cfg.annotations.EntityBinder:422 -> Bind entity com.estone.www.spis.model.po.zd.writ.DWritTemplate on table d_writ_template
- 2013-01-10 13:47:34,671 INFO hibernate.cfg.AnnotationBinder:419 -> Binding entity from annotated class: com.estone.www.spis.model.po.zd.writ.DWritType
- 2013-01-10 13:47:34,671 INFO cfg.annotations.EntityBinder:422 -> Bind entity com.estone.www.spis.model.po.zd.writ.DWritType on table d_writ_type
- # An error report file with more information is saved as:
- # D:\Program Files\apache-tomcat-6.0.20\bin\hs_err_pid6048.log
- #
- # If you would like to submit a bug report, please visit:
- #
网上解释归结于:JIT在做编译优化的时候处理时出错,可能是触发了JVM的编译器的BUG导致的。幸好SUN(Oracle)提供了相关的文档说明,得以让我们解决了这个问题。
文档地址:http://www.oracle.com/technetwork/java/javase/crashes-137240.html#gbyzu
在这里,导致本次错误的是这个方法:
- 解决办法:让jvm跳过该方法的编译优化
- -XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType