Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-800

Recovery manager not initialised when deploying just the Coordinator

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 4.13.0
    • Fix Version/s: 4.14.0
    • Component/s: XTS
    • Labels:
      None
    • Workaround:
      Workaround Exists
    • Workaround Description:
      Hide

      Enable the org.jboss.jbossts.xts.recovery.participant.at.ATParticipantRecoveryModule recovery module, too, even if you are deploying just the Coordinator.

      Show
      Enable the org.jboss.jbossts.xts.recovery.participant.at.ATParticipantRecoveryModule recovery module, too, even if you are deploying just the Coordinator.

      Description

      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.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                adinn Andrew Dinn
                Reporter:
                mauromol Mauro Molinari
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: