Refine search
public XATransactionId(Xid xid) { this.formatId = xid.getFormatId(); this.globalTransactionId = xid.getGlobalTransactionId(); this.branchQualifier = xid.getBranchQualifier(); }
public String getNameFromXid(@NotNull final Xid xid) { final int formatId = xid.getFormatId(); if (formatId == 0x20000 || formatId == 0x20005 || formatId == 0x20008) { final byte[] gtid = xid.getGlobalTransactionId(); final int length = gtid.length; if (length <= UID_LEN) { // no parent name encoded there return null; } return new String(gtid, UID_LEN, length - UID_LEN, StandardCharsets.UTF_8); } else { return null; } }
private boolean equals(Xid xid1, Xid xid2) { if (xid1 == xid2) { return true; } if (xid1 == null ^ xid2 == null) { return false; } return xid1.getFormatId() == xid2.getFormatId() && Arrays.equals(xid1.getBranchQualifier(), xid2.getBranchQualifier()) && Arrays.equals(xid1.getGlobalTransactionId(), xid2.getGlobalTransactionId()); }
/** * @param xid * @return */ public static boolean isValid(Xid xid) { final boolean result = (null != xid && -1 != xid.getFormatId() && null != xid.getGlobalTransactionId() && 0 <= xid.getGlobalTransactionId().length && Xid.MAXGTRIDSIZE >= xid.getGlobalTransactionId().length); // @250302C if (tc.isDebugEnabled()) Tr.debug(tc, "isValid", result); return result; }
public XATransactionId(final Xid xid, final String uniqueQualifier) { this.formatId = xid.getFormatId(); this.globalTransactionId = xid.getGlobalTransactionId(); this.branchQualifier = xid.getBranchQualifier(); this.uniqueQualifier = uniqueQualifier; if (StringUtils.isBlank(uniqueQualifier)) { throw new IllegalArgumentException("Blank uniqueQualifier"); } }
private static byte[] toByteArray(final Xid xid) { byte[] branchQualifier = xid.getBranchQualifier(); byte[] globalTransactionId = xid.getGlobalTransactionId(); int formatId = xid.getFormatId(); byte[] hashBytes = new byte[branchQualifier.length + globalTransactionId.length + 4]; System.arraycopy(branchQualifier, 0, hashBytes, 0, branchQualifier.length); System.arraycopy(globalTransactionId, 0, hashBytes, branchQualifier.length, globalTransactionId.length); byte[] intBytes = new byte[4]; for (int i = 0; i < 4; i++) { intBytes[i] = (byte) ((formatId >> i * 8) % 0xFF); } System.arraycopy(intBytes, 0, hashBytes, branchQualifier.length + globalTransactionId.length, 4); return hashBytes; }
private static byte[] encode(final Xid original) { final byte[] gtid = original.getGlobalTransactionId(); final byte[] bqal = original.getBranchQualifier(); final int formatId = original.getFormatId(); final byte[] target = new byte[gtid.length + bqal.length + 7]; target[0] = 0x02; target[1] = (byte) (formatId >>> 24); target[2] = (byte) (formatId >>> 16); target[3] = (byte) (formatId >>> 8); target[4] = (byte) (formatId); target[5] = (byte) gtid.length; System.arraycopy(gtid, 0, target, 6, gtid.length); target[6 + gtid.length] = (byte) bqal.length; System.arraycopy(bqal, 0, target, 7 + gtid.length, bqal.length); return target; }
public boolean equals(Object o) { if (o == this) // optimization for the common case. return true; if (!(o instanceof Xid)) return false; Xid other = (Xid) o; if (other.getFormatId() != formatId) return false; if (!Arrays.equals(globalTransactionId, other.getGlobalTransactionId())) return false; if (!Arrays.equals(branchQualifier, other.getBranchQualifier())) return false; return true; }
/** * Create a {@link SerializableXid}, copying the format ID, GTRID and BQUAL of an existing {@link Xid}. * * @param xid a {@link Xid} implementation. */ public SerializableXid(Xid xid) { if (xid.getGlobalTransactionId() == null) { throw new NullPointerException(); } if (xid.getBranchQualifier() == null) { throw new NullPointerException(); } this.formatId = xid.getFormatId(); this.globalTransactionId = xid.getGlobalTransactionId(); this.branchQualifier = xid.getBranchQualifier(); }
public static SimpleXid of(final Xid xid) { return xid instanceof SimpleXid ? (SimpleXid) xid : new SimpleXid(xid.getFormatId(), xid.getGlobalTransactionId(), xid.getBranchQualifier()); }
public boolean equals(Object o) { if (o == this) { // optimization for the common case. return true; } if (!(o instanceof Xid)) { return false; } Xid other = (Xid) o; if (other.getFormatId() != formatId) { return false; } if (!Arrays.equals(globalTransactionId, other.getGlobalTransactionId())) { return false; } if (!Arrays.equals(branchQualifier, other.getBranchQualifier())) { return false; } return true; }
/** * INTERNAL */ public static String toString(Xid xid) { return PREFIX + '_' + xid.getFormatId() + '_' + StringUtils.convertBytesToHex(xid.getBranchQualifier()) + '_' + StringUtils.convertBytesToHex(xid.getGlobalTransactionId()); }
if (xother.getFormatId() != formatId) { return false; if (xother.getBranchQualifier().length != branchQualifier.length) { return false; if (xother.getGlobalTransactionId().length != globalTransactionId.length) { return false; byte[] otherBQ = xother.getBranchQualifier(); if (branchQualifier[i] != otherBQ[i]) { return false; byte[] otherGtx = xother.getGlobalTransactionId(); if (globalTransactionId[i] != otherGtx[i]) { return false;
/** * Copy constructor * * @param other */ public XidImpl(final Xid other) { branchQualifier = copyBytes(other.getBranchQualifier()); formatId = other.getFormatId(); globalTransactionId = copyBytes(other.getGlobalTransactionId()); }
static String xidToString(Xid xid) { return xid.getFormatId() + "_" + Base64.encodeBytes(xid.getGlobalTransactionId(), Base64.DONT_BREAK_LINES) + "_" + Base64.encodeBytes(xid.getBranchQualifier(), Base64.DONT_BREAK_LINES); }
static String xidToString(Xid xid) { return xid.getFormatId() + "_" + Base64.encodeBytes(xid.getGlobalTransactionId(), Base64.DONT_BREAK_LINES) + "_" + Base64.encodeBytes(xid.getBranchQualifier(), Base64.DONT_BREAK_LINES); }
public static void encodeXid(final Xid xid, final ActiveMQBuffer out) { out.writeInt(xid.getFormatId()); out.writeInt(xid.getBranchQualifier().length); out.writeBytes(xid.getBranchQualifier()); out.writeInt(xid.getGlobalTransactionId().length); out.writeBytes(xid.getGlobalTransactionId()); }
Xid xid = ir.getXid(); dataOutput.writeByte(1); dataOutput.writeInt(xid.getFormatId()); final byte[] gtid = xid.getGlobalTransactionId(); dataOutput.writeInt(gtid.length); dataOutput.write(gtid); final byte[] bq = xid.getBranchQualifier(); dataOutput.writeInt(bq.length); dataOutput.write(bq); final Xid xid = outflowHandle.getXid(); dataOutput.writeByte(2); dataOutput.writeInt(xid.getFormatId()); final byte[] gtid = xid.getGlobalTransactionId(); dataOutput.writeInt(gtid.length); dataOutput.write(gtid); final byte[] bq = xid.getBranchQualifier(); dataOutput.writeInt(bq.length); dataOutput.write(bq);
public static void writeParam(int param, OutputStream os, Xid xid) throws IOException { if (xid == null) { writeParam(param, os); return; } final int formatId = xid.getFormatId(); final byte[] gtid = xid.getGlobalTransactionId(); final byte[] bq = xid.getBranchQualifier(); if (gtid.length > Xid.MAXGTRIDSIZE || bq.length > Xid.MAXBQUALSIZE) { throw new IOException("Cannot write invalid XID"); } final int len = gtid.length + bq.length + 5; //noinspection PointlessBooleanExpression,ConstantConditions assert Xid.MAXGTRIDSIZE <= 64 && Xid.MAXBQUALSIZE <= 64 && len < 256; // might be > 127 writeInt8(os, param); writePackedUnsignedInt32(os, len); writeInt32BE(os, formatId); writeInt8(os, gtid.length); os.write(gtid); os.write(bq); }
final Xid xid = outflowHandle.getXid(); dataOutput.writeByte(2); PackedInteger.writePackedInteger(dataOutput, xid.getFormatId()); final byte[] gtid = xid.getGlobalTransactionId(); dataOutput.writeByte(gtid.length); dataOutput.write(gtid); final byte[] bq = xid.getBranchQualifier();