The XARecoveryManager is unable to recover an Oracle Prepared Transaction.
Oracle needs the Xid to be padded (pad-xid set to true in xa-datasource).
When the method XARecoveryModule.getNewXAResource(Xid xid) is called. The value of xid is not padded (retrieved from the tx-object-store). The XID contained in the RecoveryXids are padded (retrieved from oracle). When the method execute xids.remove(xid), it never found the xid. The transaction is never recovered.
In a debug session, if you pad the xid in that method (change the xid.gtrud_length and or bqual_length), the transaction will be recovered successfully.