-
Bug
-
Resolution: Done
-
Major
-
4.13.0
-
None
-
Workaround Exists
-
If you deploy just the Coordinator component of XTS and you follow the configuration guidelines, you may be providing just the following recovery manager configuration entries in xts-properties.xml:
<entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule1">org.jboss.jbossts.xts.recovery.coordinator.at.ATCoordinatorRecoveryModule</entry>
<entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule2">org.jboss.jbossts.xts.recovery.coordinator.at.SubordinateATCoordinatorRecoveryModule</entry>
However, in this way, after the Coordinator has started, you get the following NullPointerException:
Exception in thread "Periodic Recovery" java.lang.NullPointerException
at org.jboss.jbossts.xts.recovery.coordinator.at.ATCoordinatorRecoveryModule.processTransactionsStatus(ATCoordinatorRecoveryModule.java:280)
at org.jboss.jbossts.xts.recovery.coordinator.at.ATCoordinatorRecoveryModule.periodicWorkSecondPass(ATCoordinatorRecoveryModule.java:121)
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789)
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
This is because the recovery manager is currently initialized by the ATParticipantRecoveryModule, which is expected to be made available just on the Participant component.