You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "David Jencks (JIRA)" <de...@geronimo.apache.org> on 2006/02/08 06:16:58 UTC

[jira] Commented: (GERONIMO-1599) HOWLLog throws NPE because XidFactory is missing

    [ http://issues.apache.org/jira/browse/GERONIMO-1599?page=comments#action_12365523 ] 

David Jencks commented on GERONIMO-1599:
----------------------------------------

Of all the idiotic coding mistakes I've made this may be the most embarassing.   I put in a temporarly fix that should work fine.  I would like to review it to make sure that there is no way new transactions can be logged before the log is recovered.

Applied to trunk, this or improved fix needs to be applied to branch/1.0

Sending        transaction/src/java/org/apache/geronimo/transaction/log/HOWLLog.java
Sending        transaction/src/test/org/apache/geronimo/transaction/log/HOWLLogTest.java
Sending        transaction/src/test/org/apache/geronimo/transaction/manager/HOWLLogRecoveryTest.java
Transmitting file data ...
Committed revision 375854. 

> HOWLLog throws NPE because XidFactory is missing
> ------------------------------------------------
>
>          Key: GERONIMO-1599
>          URL: http://issues.apache.org/jira/browse/GERONIMO-1599
>      Project: Geronimo
>         Type: Bug
>   Components: transaction manager
>     Versions: 1.0
>     Reporter: Jason Dillon
>     Assignee: David Jencks
>     Priority: Critical

>
> I've run into a situation where an EJB transaction hangs, and when I kill G and reboot, it fails with this NPE:
> {noformat}
> Booting Geronimo Kernel (in Java 1.4.2_09)...
> Started configuration  1/23   0s geronimo/rmi-naming/1.0/car
> 16:15:06,779 ERROR [GBeanInstanceState] Error while starting; GBean is
> now in the FAILED state:
> objectName="geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-server/1.0/car,J2EEServer=geronimo,j2eeType=TransactionLog,name=HOWLTransactionLog"
> java.lang.NullPointerException
>        at org.apache.geronimo.transaction.log.HOWLLog$GeronimoReplayListener.onRecord(HOWLLog.java:362)
>        at org.objectweb.howl.log.xa.XALogger.replayActiveTx(XALogger.java:1059)
>        at org.apache.geronimo.transaction.log.HOWLLog.doStart(HOWLLog.java:220)
>        at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:936)
>        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:325)
>        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:110)
>        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:132)
>        at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:537)
>        at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:208)
>        at org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans(Configuration.java:315)
>        at org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.invoke(<generated>)
>        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>        at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
>        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
>        at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
>        at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:173)
>        at org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start(ConfigurationManagerImpl.java:142)
>        at org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.invoke(<generated>)
>        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>        at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
>        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:800)
>        at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>        at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36)
>        at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
>        at org.apache.geronimo.kernel.config.ConfigurationManager$$EnhancerByCGLIB$$ac1e62eb.start(<generated>)
>        at org.apache.geronimo.system.main.Daemon.doStartup(Daemon.java:323)
>        at org.apache.geronimo.system.main.Daemon.<init>(Daemon.java:82)
>        at org.apache.geronimo.system.main.Daemon.main(Daemon.java:404)
> Started configuration  2/23   1s geronimo/j2ee-server/1.0/car
> {noformat}
> The system is useless at this point, need to rm var/txlog/* to get a functional G back.
> For some reason the XidFactory that is passed in to the HOWLLog is null.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira