XAException.XAER_RMERR should be treated as an error

Details

Description

In the PostgreSQL JDBC driver the PGXAConnection.commitOnePhase() (and other methods too) throws an XAException with the error code XAException.XAER_RMERR when a server-side error occurs during database commit. This is not handled in Committer.CommitJob.handleXAException()'s `switch (xaException.errorCode)'. The result of this behavior is that the transaction manager reports that the transaction is successfully committed but the underlying database transaction remains open.