When you create a project in a few days and generate a bunch of annotated entities, the JVM reports an error when the number of entities exceeds 86:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal error (c1_optimizer.cpp: 271), pid = 5104, tid = 6488
# Guarantee (x_compare_res! = Constant: not_comparable) failed: incomparable constants in IFOP
#
# JRE version: 6.0 _ 35-b10
# Java VM: Java hotspot (TM) Client VM (20.10-B01 mixed mode, sharing windows-x86)
# An error report file with more information is saved:
# D: \ development tool \ eclipse_up \ hs_err_pid5104.log
20121130 | 13:44:09 [info] [localhost-startStop-1] [annotationsessionfactorybean: 777] building new hibernate sessionfactory
#
# If you wowould like to submit a bug report, please visit:
# Http://java.sun.com/webapps/bugreport/crash.jsp
#
It was found that JDK 1.6bug of Windows version was found. (This problem was not found in Linux after testing ),The cause is that JIT encountered an error when processing a method during compilation optimization.This method is incorrect.
Org. hibernate. cfg. Annotations. simplevaluebinder. settype
Solution: Let JVM skip the compilation Optimization of this method
Add startup parameters to JVM startup parameters
Add JVM startup parameters:-XX: compilecommand = exclude, org/hibernate/CFG/Annotations/simplevaluebinder. settype
Or: change to jdk1.5 jdk7.
If yesStart Tomcat directly through startup, You need to modify the following files
In Windows, in files/bin/Catalina. BAT and UNIX, in files/bin/Catalina. Sh
Find
Set java_opts = % java_opts % logging_config %
Change
Set java_opts = % java_opts %-XX: compilecommand = exclude, org/hibernate/CFG/Annotations/simplevaluebinder, settype % logging_config %