public void abort(int xid) throws RemoteException, InvalidTransactionException { if (!xidIsValid(xid)) throw new InvalidTransactionException(xid, ""); Set<ResourceManager> abortSet = enlistList.get(xid); for (ResourceManager rm : abortSet) { try { rm.abort(xid); } catch (Exception e) { System.out.println("Abort has invalid rm."); } } enlistList.remove(xid); protocolDB.remove(xid); }