/** * Returns true if the serialized object is an invalid token. * * @param b the magic entry type byte * @return true if invalid */ public static boolean isInvalid(byte b) { return EntryBits.isInvalid(b); }
if (EntryBits.isInvalid(userBits)) { bb = new BytesAndBits(DiskEntry.Helper.INVALID_BUFFER, userBits); } else if (EntryBits.isTombstone(userBits)) {
if (EntryBits.isInvalid(userBits)) { bb = new BytesAndBits(DiskEntry.INVALID_BYTES, userBits); } else if (EntryBits.isTombstone(userBits)) {
if (EntryBits.isInvalid(userBits)) { bb = new BytesAndBits(DiskEntry.Helper.INVALID_BUFFER, userBits); } else if (EntryBits.isTombstone(userBits)) {
BytesAndBits bb = null; if (EntryBits.isAnyInvalid(userBits) || EntryBits.isTombstone(userBits) || bitOnly || valueLength == 0) { if (EntryBits.isInvalid(userBits)) { bb = new BytesAndBits(DiskEntry.INVALID_BYTES, userBits); } else if (EntryBits.isTombstone(userBits)) {
int valueLength, byte userBits, BytesAndBitsForCompactor wrapper) { if (EntryBits.isAnyInvalid(userBits) || EntryBits.isTombstone(userBits) || bitOnly || valueLength == 0) { if (EntryBits.isInvalid(userBits)) { wrapper.setData(DiskEntry.INVALID_BYTES, userBits, DiskEntry.INVALID_BYTES.length, false /* Cannot be reused */);
int valueLength, byte userBits, BytesAndBitsForCompactor wrapper) { if (EntryBits.isAnyInvalid(userBits) || EntryBits.isTombstone(userBits) || bitOnly || valueLength == 0) { if (EntryBits.isInvalid(userBits)) { wrapper.setData(DiskEntry.INVALID_BYTES, userBits, DiskEntry.INVALID_BYTES.length, false /* Cannot be reused */);
/** * 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; }
BytesAndBitsForCompactor wrapper) { if (EntryBits.isAnyInvalid(userBits) || EntryBits.isTombstone(userBits) || bitOnly || valueLength == 0) { if (EntryBits.isInvalid(userBits)) { wrapper.setData(DiskEntry.INVALID_BYTES, userBits, DiskEntry.INVALID_BYTES.length, false /*
/** * 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; }
valueLength = 0; else if (EntryBits.isInvalid(userBits)) { value = Token.INVALID; valueLength = 0;
assertEquals(userBits, did.getUserBits()); 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)); did.setUserBits(userBits); assertTrue(EntryBits.isSerialized(userBits)); assertFalse(EntryBits.isInvalid(userBits)); assertFalse(EntryBits.isLocalInvalid(userBits)); did.setUserBits(userBits); assertFalse(EntryBits.isSerialized(userBits)); assertTrue(EntryBits.isInvalid(userBits)); assertFalse(EntryBits.isLocalInvalid(userBits)); did.setUserBits(userBits); assertFalse(EntryBits.isSerialized(userBits)); assertFalse(EntryBits.isInvalid(userBits)); assertTrue(EntryBits.isLocalInvalid(userBits)); assertFalse(EntryBits.isLocalInvalid(userBits)); assertFalse(EntryBits.isSerialized(userBits)); assertFalse(EntryBits.isInvalid(userBits));
BytesAndBits bb = (BytesAndBits)value; final byte bits = bb.getBits(); if (EntryBits.isInvalid(bits)) { value = Token.INVALID; } else if (EntryBits.isLocalInvalid(bits)) {
if (EntryBits.isInvalid(bb.getBits())) { value = Token.INVALID; } else if (EntryBits.isLocalInvalid(bb.getBits())) {
break; case 2: assertEquals(EntryBits.isInvalid(userBits2), boolValuePerIteration); break; case 3:
if (EntryBits.isInvalid(userBits)) { wrapper.setData(DiskEntry.INVALID_BYTES, userBits, DiskEntry.INVALID_BYTES.length, false/* Can not be reused*/); } else {
if (EntryBits.isInvalid(userBits)) { wrapper.setData(DiskEntry.INVALID_BYTES, userBits, DiskEntry.INVALID_BYTES.length, false/* Can not be reused*/); } else {
if (EntryBits.isInvalid(userBits)) { wrapper.setData(DiskEntry.INVALID_BYTES, userBits, DiskEntry.INVALID_BYTES.length, false/* Can not be reused*/); } else {