Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.11
-
None
-
All OS/hardware platforms as well as current brokers.
Description
The isSameRM method of org.apache.qpid.client.XAResourceImpl always returns
false.
The javadoc for isSameRM says ..
"This method is called to determine if the resource manager instance
represented by the target object is the same as the resource manager instance
represented by the parameter xares ."
which means isSameRM has to return true when invoked with identical objects
(Java identity). Clearly, these two XA resources are backed by the same
resource manager.
//xaResource1 == xaResource2
XAResource xaResource1 = jmsXAResource;
XAResource xaResource2 = jmsXAResource;
// xaResource1.isSameRM(xaResource2) should be true
Because the Qpid implementation always returns false, it affects resource
enlistment/delistment.
The source code (lines 213 - 217) of org.apache.qpid.client.XAResourceImpl
suggests that this method has not been fully completed.
public boolean isSameRM(XAResource xaResource) throws XAException
{
// TODO : get the server identity of xaResource and compare it with our own one
return false;
}