 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        Hibernate with JBoss TreeCache problem
                                
                                
                                
                                    
                                        by Andreas Røsdal
                                    
                                
                                
                                        Hello,
I'm having some problems with a website which uses Hibernate with JBoss 
TreeCache. Several servers with the following configuration:
Resin application server, with Hibernate 3, with JBoss TreeCache.
The problem occurs during startup of the Resin application server,
occurs during initialization of hibernate, and the result is that when 
this occurs no .jsp pages are served from Resin which uses Hibernate.
Most of the threads in the Resin application server are waiting for a 
thread in the jgroups classes. However, this function never finishes,
causing all new tcpConnection threads to wait, until the application 
server crashes.
Here is the full stack dump from java while the problem occurs:
http://www.pvv.org/~andrearo/java-stack-dump.txt
Here is the relevant thread which causes the problem:
"tcpConnection-6802-19" daemon prio=1 tid=0x0825f300 nid=0x1354 in Object.wait() [0xaef01000..0xaef01878]
             at java.lang.Object.wait(Native Method)
             - waiting on <0x51ed2f78> (a org.jgroups.util.Promise)
             at java.lang.Object.wait(Object.java:429)
             at org.jgroups.util.Promise.doWait(Promise.java:100)
             at org.jgroups.util.Promise._getResultWithTimeout(Promise.java:52)
             at  org.jgroups.util.Promise.getResultWithTimeout(Promise.java:28)
             - locked <0x51ed2f78> (a org.jgroups.util.Promise)
             at org.jgroups.util.Promise.getResult(Promise.java:77)
             at org.jgroups.JChannel.connect(JChannel.java:353)
Any advice about what could be the cause of these problems? How should I 
go about further investigating this? I have briefly looked at 
the getResultWithTimeout() method in the Promise class from jgroups.
Any help would be appreciated!
   - Andreas R.
                                
                         
                        
                                
                                18 years, 2 months
                        
                        
                 
         
 
        
            
        
        
        
                
                        
                                
                                 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        Intermittent problem during hibernate factory initialization in tomcat
                                
                                
                                
                                    
                                        by Oren Livne
                                    
                                
                                
                                        Dear All,
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:
Aug 11, 2007 9:04:31 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
21:04:33,059 INFO  DefaultResourceLocator   :135 - initializing
21:04:33,072 INFO  DefaultStopwatchEngine   : 70 - Starting engine ...
21:04:33,326 INFO  DefaultStopwatchEngine   : 81 - Engine started in 254ms.
21:04:33,328 INFO  DefaultResourceLocator   :357 - Initializing DAO 
factory 'hibernate'
21:04:37,079 ERROR HibernateSessionFactory  :144 - %%%% Error Creating 
SessionFactory %%%%
21:04:37,083 ERROR HibernateSessionFactory  :145 -  [ 
java.lang.ExceptionInInitializerError ] nul
l java.lang.ExceptionInInitializerError
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.ja
va:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccesso
rImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at 
org.hibernate.engine.UnsavedValueFactory.instantiate(UnsavedValueFactory.java:22)
        at 
org.hibernate.engine.UnsavedValueFactory.getUnsavedIdentifierValue(UnsavedValueFactory
.java:44)
        at 
org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
        at 
org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:118)
        at 
org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.
java:425)
        at 
org.hibernate.persister.entity.JoinedSubclassEntityPersister.<init>(JoinedSubclassEnti
tyPersister.java:91)
        at 
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:58
)
        at 
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
        at 
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1291)
        at 
net.ruready.port.eis.factory.entity.HibernateSessionFactory.rebuildSessionFactory(Hibe
rnateSessionFactory.java:135)
        at 
net.ruready.port.eis.factory.entity.HibernateSessionFactory.getSession(HibernateSessio
nFactory.java:164)
        at 
net.ruready.port.eis.factory.imports.HibernateDAOFactory.getSession(HibernateDAOFactor
y.java:303)
        at 
net.ruready.port.eis.factory.imports.HibernateDAOFactory.initialize(HibernateDAOFactor
y.java:156)
        at 
net.ruready.imports.DefaultResourceLocator.initialize(DefaultResourceLocator.java:145)
        at 
net.ruready.struts.common.imports.WebAppResourceLocator.getInstance(WebAppResourceLoca
tor.java:52)
        at 
net.ruready.port.eis.factory.imports.HibernateEISBD.<clinit>(HibernateEISBD.java:43)
        at net.ruready.user.entity.User.<clinit>(User.java:83)
        at sun.misc.Unsafe.ensureClassInitialized(Native Method)
        at 
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.jav
a:25)
        at 
sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
        at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
        at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
        at java.lang.reflect.Field.getLong(Field.java:528)
        at 
java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1614)
        at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)
        at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:425)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413)
        at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
        at 
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:547)
        at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
        at 
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
        at 
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at 
org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1439)
        at 
org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:942)
        at 
org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)
        at 
org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
        at 
org.apache.catalina.session.StandardManager.start(StandardManager.java:637)
        at 
org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:438)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at 
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at 
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
        at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
        at 
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117
)
        at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at 
org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NullPointerException
        at 
net.ruready.common.eis.manager.DefaultEISManager.<init>(DefaultEISManager.java:48)
        at 
net.ruready.port.eis.factory.imports.HibernateEISBD.<init>(HibernateEISBD.java:58)
        at 
net.ruready.port.eis.tree.entity.PersistentTreeNode.<clinit>(PersistentTreeNode.java:8
8)
        ... 68 more
The code that causes this error is in my hibernate factory implementation:
    /**
     * Rebuild hibernate session factory
     */
    public void rebuildSessionFactory()
    {
        try
        {
            configuration
                    .configure(config
                            
.getProperty(CommonNames.RESOURCE_LOCATOR.PROPERTY.DAO_FACTORY_CONFIG_FILE_NAME));
            sessionFactory = configuration.buildSessionFactory(); 
<----------------- crash happens right here!!
        }
        catch (Exception e)
        {
            logger.error("%%%% Error Creating SessionFactory %%%%");
            logger.error(ExceptionUtil.getStackTraceAsString(e));
        }
        catch (ExceptionInInitializerError e)
        {
            logger.error("%%%% Error Creating SessionFactory %%%%");
            logger.error(ExceptionUtil.getStackTraceAsString(e));
        }
    }
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.
Thank you so much in advance,
Oren
-- 
==========================================================================
"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: olivne(a)aoce.utah.edu              Web:  http://ruready.net/oren
==========================================================================
                                
                         
                        
                                
                                18 years, 2 months