<!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&nbsp; DefaultResourceLocator&nbsp;&nbsp; :135 - initializing<br>
21:04:33,072 INFO&nbsp; DefaultStopwatchEngine&nbsp;&nbsp; : 70 - Starting engine ... <br>
21:04:33,326 INFO&nbsp; DefaultStopwatchEngine&nbsp;&nbsp; : 81 - Engine started in
254ms. <br>
21:04:33,328 INFO&nbsp; DefaultResourceLocator&nbsp;&nbsp; :357 - Initializing DAO
factory 'hibernate'<br>
21:04:37,079 ERROR HibernateSessionFactory&nbsp; :144 - %%%% Error Creating
SessionFactory %%%%<br>
21:04:37,083 ERROR HibernateSessionFactory&nbsp; :145 -&nbsp; [
java.lang.ExceptionInInitializerError ] nul<br>
l java.lang.ExceptionInInitializerError<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.ja<br>
va:39)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccesso<br>
rImpl.java:27)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.engine.UnsavedValueFactory.instantiate(UnsavedValueFactory.java:22)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.engine.UnsavedValueFactory.getUnsavedIdentifierValue(UnsavedValueFactory<br>
.java:44)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.tuple.entity.EntityMetamodel.&lt;init&gt;(EntityMetamodel.java:118)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.persister.entity.AbstractEntityPersister.&lt;init&gt;(AbstractEntityPersister.<br>
java:425)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.persister.entity.JoinedSubclassEntityPersister.&lt;init&gt;(JoinedSubclassEnti<br>
tyPersister.java:91)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:58<br>
)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.impl.SessionFactoryImpl.&lt;init&gt;(SessionFactoryImpl.java:226)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1291)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.port.eis.factory.entity.HibernateSessionFactory.rebuildSessionFactory(Hibe<br>
rnateSessionFactory.java:135)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.port.eis.factory.entity.HibernateSessionFactory.getSession(HibernateSessio<br>
nFactory.java:164)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.port.eis.factory.imports.HibernateDAOFactory.getSession(HibernateDAOFactor<br>
y.java:303)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.port.eis.factory.imports.HibernateDAOFactory.initialize(HibernateDAOFactor<br>
y.java:156)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.imports.DefaultResourceLocator.initialize(DefaultResourceLocator.java:145)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.struts.common.imports.WebAppResourceLocator.getInstance(WebAppResourceLoca<br>
tor.java:52)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.port.eis.factory.imports.HibernateEISBD.&lt;clinit&gt;(HibernateEISBD.java:43)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at net.ruready.user.entity.User.&lt;clinit&gt;(User.java:83)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.misc.Unsafe.ensureClassInitialized(Native Method)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.jav<br>
a:25)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.reflect.Field.getFieldAccessor(Field.java:899)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.reflect.Field.getLong(Field.java:528)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1614)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:425)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.security.AccessController.doPrivileged(Native Method)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectStreamClass.&lt;init&gt;(ObjectStreamClass.java:413)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:547)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1439)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:942)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.session.StandardManager.load(StandardManager.java:321)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.session.StandardManager.start(StandardManager.java:637)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:438)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117<br>
)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.StandardHost.start(StandardHost.java:719)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.StandardService.start(StandardService.java:516)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.startup.Catalina.start(Catalina.java:566)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:597)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)<br>
Caused by: java.lang.NullPointerException<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.common.eis.manager.DefaultEISManager.&lt;init&gt;(DefaultEISManager.java:48)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.port.eis.factory.imports.HibernateEISBD.&lt;init&gt;(HibernateEISBD.java:58)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
net.ruready.port.eis.tree.entity.PersistentTreeNode.&lt;clinit&gt;(PersistentTreeNode.java:8<br>
8)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... 68 more<br>
<br>
</font>The code that causes this error is in my hibernate factory
implementation:<br>
<br>
&nbsp;&nbsp;&nbsp; /**<br>
&nbsp;&nbsp;&nbsp; &nbsp;* Rebuild hibernate session factory<br>
&nbsp;&nbsp;&nbsp; &nbsp;*/<br>
&nbsp;&nbsp;&nbsp; public void rebuildSessionFactory()<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; configuration<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .configure(config<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
.getProperty(CommonNames.RESOURCE_LOCATOR.PROPERTY.DAO_FACTORY_CONFIG_FILE_NAME));<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sessionFactory = configuration.buildSessionFactory();
&lt;----------------- crash happens right here!!<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; catch (Exception e)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; logger.error("%%%% Error Creating SessionFactory %%%%");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; logger.error(ExceptionUtil.getStackTraceAsString(e));<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; catch (ExceptionInInitializerError e)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; logger.error("%%%% Error Creating SessionFactory %%%%");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; logger.error(ExceptionUtil.getStackTraceAsString(e));<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<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>