/** * Returns true if the serialized tombstone was garbage collected * * @param b the magic entry type byte * @return true if RemovedPhase2 */ public static boolean isRemovedPhase2(byte b) { return EntryBits.isLocalInvalid(b); }
public boolean isInvalid() { return (this.value == null) && !EntryBits.isLocalInvalid(this.entryBits); }
public boolean isLocalInvalid() { return EntryBits.isLocalInvalid(this.entryBits); }
public boolean isLocalInvalid() { return EntryBits.isLocalInvalid(this.entryBits); }
public boolean isInvalid() { return (this.value == null) && !EntryBits.isLocalInvalid(this.entryBits); }
/** * TODO soplog - This method is public just to test soplog recovery */ public DiskEntry.RecoveredEntry createRecoveredEntry(byte[] valueBytes, int valueLength, byte userBits, long oplogId, long offsetInOplog, long oplogKeyId, boolean recoverValue, Version version, ByteArrayDataInput in) { DiskEntry.RecoveredEntry re = null; if (recoverValue || EntryBits.isAnyInvalid(userBits) || EntryBits.isTombstone(userBits)) { Object value; if (EntryBits.isLocalInvalid(userBits)) { value = Token.LOCAL_INVALID; valueLength = 0; } else if (EntryBits.isInvalid(userBits)) { value = Token.INVALID; valueLength = 0; } else if (EntryBits.isSerialized(userBits)) { value = DiskEntry.Helper.readSerializedValue(valueBytes, version, in, false); } else if (EntryBits.isTombstone(userBits)) { value = Token.TOMBSTONE; } else { value = valueBytes; } re = new DiskEntry.RecoveredEntry(oplogKeyId, oplogId, offsetInOplog, userBits, valueLength, value); } else { re = new DiskEntry.RecoveredEntry(oplogKeyId, oplogId, offsetInOplog, userBits, valueLength); } return re; }
/** * Given a BytesAndBits object either convert it to the relevant Object * (deserialize if necessary) or return the serialized blob. */ private static Object convertBytesAndBits(BytesAndBits bb, boolean asObject) { Object value; if (EntryBits.isInvalid(bb.getBits())) { value = Token.INVALID; } else if (EntryBits.isSerialized(bb.getBits())) { value = DiskEntry.Helper.readSerializedValue(bb, asObject); } else if (EntryBits.isLocalInvalid(bb.getBits())) { value = Token.LOCAL_INVALID; } else if (EntryBits.isTombstone(bb.getBits())) { value = Token.TOMBSTONE; } else { value = DiskEntry.Helper.readRawValue(bb); } // buffer will no longer be used so clean it up eagerly bb.release(); return value; }
/** * Given a BytesAndBits object get the serialized blob * * @param bb * @return the converted object */ static Object convertBytesAndBitsToSerializedForm(BytesAndBits bb) { final byte[] bytes = bb.getBytes(); Object value; if (EntryBits.isInvalid(bb.getBits())) { value = Token.INVALID; } else if (EntryBits.isSerialized(bb.getBits())) { value = DiskEntry.Helper .readSerializedValue(bytes, bb.getVersion(), null, false); } else if (EntryBits.isLocalInvalid(bb.getBits())) { value = Token.LOCAL_INVALID; } else if (EntryBits.isTombstone(bb.getBits())) { value = Token.TOMBSTONE; } else { value = DiskEntry.Helper.readRawValue(bytes, bb.getVersion(), null); } return value; }
/** * Given a BytesAndBits object convert it to the relevant Object (deserialize * if necessary) and return the object * * @param bb * @return the converted object */ static Object convertBytesAndBitsIntoObject(BytesAndBits bb) { byte[] bytes = bb.getBytes(); Object value; if (EntryBits.isInvalid(bb.getBits())) { value = Token.INVALID; } else if (EntryBits.isSerialized(bb.getBits())) { value = DiskEntry.Helper .readSerializedValue(bytes, bb.getVersion(), null, true); } else if (EntryBits.isLocalInvalid(bb.getBits())) { value = Token.LOCAL_INVALID; } else if (EntryBits.isTombstone(bb.getBits())) { value = Token.TOMBSTONE; } else { value = DiskEntry.Helper.readRawValue(bytes, bb.getVersion(), null); } return value; }
if (recoverValue || EntryBits.isAnyInvalid(userBits) || EntryBits.isTombstone(userBits)) { Object value; if (EntryBits.isLocalInvalid(userBits)) { value = Token.LOCAL_INVALID; valueLength = 0;
assertTrue(EntryBits.isSerialized(userBits)); assertTrue(EntryBits.isInvalid(userBits)); assertTrue(EntryBits.isLocalInvalid(userBits)); userBits = EntryBits.setSerialized(userBits, false); did.setUserBits(userBits); assertFalse(EntryBits.isSerialized(userBits)); assertFalse(EntryBits.isInvalid(userBits)); assertFalse(EntryBits.isLocalInvalid(userBits)); assertTrue(EntryBits.isSerialized(userBits)); assertFalse(EntryBits.isInvalid(userBits)); assertFalse(EntryBits.isLocalInvalid(userBits)); assertFalse(EntryBits.isSerialized(userBits)); assertTrue(EntryBits.isInvalid(userBits)); assertFalse(EntryBits.isLocalInvalid(userBits)); assertFalse(EntryBits.isSerialized(userBits)); assertFalse(EntryBits.isInvalid(userBits)); assertTrue(EntryBits.isLocalInvalid(userBits)); userBits = EntryBits.setWithVersions(userBits, true); did.setUserBits(userBits); assertFalse(EntryBits.isLocalInvalid(userBits)); assertFalse(EntryBits.isSerialized(userBits)); assertFalse(EntryBits.isInvalid(userBits));
if (EntryBits.isInvalid(bits)) { value = Token.INVALID; } else if (EntryBits.isLocalInvalid(bits)) { value = Token.LOCAL_INVALID; } else if (EntryBits.isTombstone(bits)) {
if (EntryBits.isInvalid(bb.getBits())) { value = Token.INVALID; } else if (EntryBits.isLocalInvalid(bb.getBits())) { value = Token.LOCAL_INVALID; } else if (EntryBits.isTombstone(bb.getBits())) {
break; case 3: assertEquals(EntryBits.isLocalInvalid(userBits2), boolValuePerIteration); break;
entry.setInvalid(); else if (EntryBits.isLocalInvalid(bb.getBits())) { entry.setLocalInvalid();
entry.setInvalid(); else if (EntryBits.isLocalInvalid(bb.getBits())) { entry.setLocalInvalid();