XAResponse xaResponse;
try {
xaResponse = (XAResponse) multiRunner.execute(new XARequestCallable(resourceImpl, request, request.getXid()));
} catch (InterruptedException e) {
cleanupThread(request.getXid());
throw new EhcacheXAException(e.getMessage(), XAException.XAER_RMERR, e);
} catch (ExecutionException e) {
cleanupThread(request.getXid());
throw new EhcacheXAException(e.getMessage(), XAException.XAER_RMERR, e);
}
if (xaResponse.getXaException() != null) {
cleanupThread(request.getXid());
throw new EhcacheXAException("XA " + request.getRequestType().toString().toLowerCase() +
" request failed on [" + request.getXid() + "]", xaResponse.getXaException().errorCode,
xaResponse.getXaException());
}
if (request.getRequestType().equals(XARequest.RequestType.COMMIT) ||