<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<font face="Arial">Dear All,<br>
I'm running Hibernate 3.2.4 GA inside a web application on tomcat
6.0.14. Recently (the last two months), a LinkageError has been thrown
during Hibernate Factory initialization about 50% of the time (almost
always alternating between bug-no bug when restarting tomcat many times
in a row). Could someone please help me find the problem? I am not a
Hibernate expert. Here's the stack trace from tomcat's log:<br>
<br>
Aug 11, 2007 9:04:31 PM org.apache.catalina.core.StandardEngine start<br>
INFO: Starting Servlet Engine: Apache Tomcat/6.0.14<br>
21:04:33,059 INFO DefaultResourceLocator :135 - initializing<br>
21:04:33,072 INFO DefaultStopwatchEngine : 70 - Starting engine ... <br>
21:04:33,326 INFO DefaultStopwatchEngine : 81 - Engine started in
254ms. <br>
21:04:33,328 INFO DefaultResourceLocator :357 - Initializing DAO
factory 'hibernate'<br>
21:04:37,079 ERROR HibernateSessionFactory :144 - %%%% Error Creating
SessionFactory %%%%<br>
21:04:37,083 ERROR HibernateSessionFactory :145 - [
java.lang.ExceptionInInitializerError ] nul<br>
l java.lang.ExceptionInInitializerError<br>
at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br>
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.ja<br>
va:39)<br>
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccesso<br>
rImpl.java:27)<br>
at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)<br>
at
org.hibernate.engine.UnsavedValueFactory.instantiate(UnsavedValueFactory.java:22)<br>
at
org.hibernate.engine.UnsavedValueFactory.getUnsavedIdentifierValue(UnsavedValueFactory<br>
.java:44)<br>
at
org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)<br>
at
org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:118)<br>
at
org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.<br>
java:425)<br>
at
org.hibernate.persister.entity.JoinedSubclassEntityPersister.<init>(JoinedSubclassEnti<br>
tyPersister.java:91)<br>
at
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:58<br>
)<br>
at
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)<br>
at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1291)<br>
at
net.ruready.port.eis.factory.entity.HibernateSessionFactory.rebuildSessionFactory(Hibe<br>
rnateSessionFactory.java:135)<br>
at
net.ruready.port.eis.factory.entity.HibernateSessionFactory.getSession(HibernateSessio<br>
nFactory.java:164)<br>
at
net.ruready.port.eis.factory.imports.HibernateDAOFactory.getSession(HibernateDAOFactor<br>
y.java:303)<br>
at
net.ruready.port.eis.factory.imports.HibernateDAOFactory.initialize(HibernateDAOFactor<br>
y.java:156)<br>
at
net.ruready.imports.DefaultResourceLocator.initialize(DefaultResourceLocator.java:145)<br>
at
net.ruready.struts.common.imports.WebAppResourceLocator.getInstance(WebAppResourceLoca<br>
tor.java:52)<br>
at
net.ruready.port.eis.factory.imports.HibernateEISBD.<clinit>(HibernateEISBD.java:43)<br>
at net.ruready.user.entity.User.<clinit>(User.java:83)<br>
at sun.misc.Unsafe.ensureClassInitialized(Native Method)<br>
at
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.jav<br>
a:25)<br>
at
sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)<br>
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)<br>
at java.lang.reflect.Field.getFieldAccessor(Field.java:899)<br>
at java.lang.reflect.Field.getLong(Field.java:528)<br>
at
java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1614)<br>
at
java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)<br>
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:425)<br>
at java.security.AccessController.doPrivileged(Native Method)<br>
at
java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413)<br>
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)<br>
at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:547)<br>
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)<br>
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)<br>
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)<br>
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)<br>
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)<br>
at
org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1439)<br>
at
org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:942)<br>
at
org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)<br>
at
org.apache.catalina.session.StandardManager.load(StandardManager.java:321)<br>
at
org.apache.catalina.session.StandardManager.start(StandardManager.java:637)<br>
at
org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:438)<br>
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)<br>
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)<br>
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)<br>
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)<br>
at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)<br>
at
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)<br>
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)<br>
at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)<br>
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)<br>
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117<br>
)<br>
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)<br>
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:719)<br>
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)<br>
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)<br>
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)<br>
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)<br>
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br>
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br>
at java.lang.reflect.Method.invoke(Method.java:597)<br>
at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)<br>
at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)<br>
Caused by: java.lang.NullPointerException<br>
at
net.ruready.common.eis.manager.DefaultEISManager.<init>(DefaultEISManager.java:48)<br>
at
net.ruready.port.eis.factory.imports.HibernateEISBD.<init>(HibernateEISBD.java:58)<br>
at
net.ruready.port.eis.tree.entity.PersistentTreeNode.<clinit>(PersistentTreeNode.java:8<br>
8)<br>
... 68 more<br>
<br>
</font>The code that causes this error is in my hibernate factory
implementation:<br>
<br>
/**<br>
* Rebuild hibernate session factory<br>
*/<br>
public void rebuildSessionFactory()<br>
{<br>
try<br>
{<br>
configuration<br>
.configure(config<br>
.getProperty(CommonNames.RESOURCE_LOCATOR.PROPERTY.DAO_FACTORY_CONFIG_FILE_NAME));<br>
sessionFactory = configuration.buildSessionFactory();
<----------------- crash happens right here!!<br>
}<br>
catch (Exception e)<br>
{<br>
logger.error("%%%% Error Creating SessionFactory %%%%");<br>
logger.error(ExceptionUtil.getStackTraceAsString(e));<br>
}<br>
catch (ExceptionInInitializerError e)<br>
{<br>
logger.error("%%%% Error Creating SessionFactory %%%%");<br>
logger.error(ExceptionUtil.getStackTraceAsString(e));<br>
}<br>
}<br>
<br>
The same happened with tomcat 6.0.13. My plan is to upgrade to
Hibernate 3.2.5 GA, but I don't know what else to do. I have a
complicated configuration of jars in my web app which I suppressed here
which might cause this -- please let me know what else you need to know
about my config.<br>
<br>
Thank you so much in advance,<br>
Oren<br>
<pre class="moz-signature" cols="80">--
==========================================================================
"The young know the rules, the old know the exceptions."
--------------------------------------------------------------------------
Oren Livne, Ph.D.
RUReady Software Architect
Academic Outreach and Continuing Education, 1901 E South Campus Dr.
Room 2197-D, University of Utah, Salt Lake City, UT 84112-9399
Tel : (801) 581-6831 Cell: (801) 631-3885 Fax: (801) 585-5414
Email: <a class="moz-txt-link-abbreviated" href="mailto:olivne@aoce.utah.edu">olivne@aoce.utah.edu</a> Web: <a class="moz-txt-link-freetext" href="http://ruready.net/oren">http://ruready.net/oren</a>
==========================================================================
</pre>
</body>
</html>