Buggy code:
public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializationStrategy { private static final IdRowCompositeSerializer ID_SER = IdRowCompositeSerializer . get ( ) ; private static final CollectionScopedRowKeySerializer < Id > ROW_KEY_SER = new CollectionScopedRowKeySerializer ( MvccEntitySerializationStrategyV3Impl . ID_SER ) ; private static final MultiTennantColumnFamily < ScopedRowKey < CollectionPrefixedKey < Id > > , Boolean > CF_ENTITY_DATA = new MultiTennantColumnFamily ( "Entity_Version_Data_V3" , MvccEntitySerializationStrategyV3Impl . ROW_KEY_SER , BooleanSerializer . get ( ) ) ; private static final FieldBufferSerializer FIELD_BUFFER_SERIALIZER = FieldBufferSerializer . get ( ) ; private static final Boolean COL_VALUE = Boolean . TRUE ; private final MvccEntitySerializationStrategyV3Impl . EntitySerializer entitySerializer ; private static final Logger log = LoggerFactory . getLogger ( MvccLogEntrySerializationStrategyImpl . class ) ; protected final Keyspace keyspace ; protected final SerializationFig serializationFig ; protected final CassandraFig cassandraFig ; @ Inject public MvccEntitySerializationStrategyV3Impl ( final Keyspace keyspace , final SerializationFig serializationFig , final CassandraFig cassandraFig ) { } @ Override public MutationBatch write ( final CollectionScope collectionScope , final MvccEntity entity ) { } @ Override public EntitySet load ( final CollectionScope collectionScope , final Collection < Id > entityIds , final UUID maxVersion ) { } @ Override public Iterator < MvccEntity > loadDescendingHistory ( final CollectionScope collectionScope , final Id entityId , final UUID version , final int fetchSize ) { } @ Override public Iterator < MvccEntity > loadAscendingHistory ( final CollectionScope collectionScope , final Id entityId , final UUID version , final int fetchSize ) { } @ Override public Optional < MvccEntity > load ( final CollectionScope scope , final Id entityId ) { } @ Override public MutationBatch mark ( final CollectionScope collectionScope , final Id entityId , final UUID version ) { } @ Override public MutationBatch delete ( final CollectionScope collectionScope , final Id entityId , final UUID version ) { } @ Override public Collection getColumnFamilies ( ) { } private MutationBatch doWrite ( final CollectionScope collectionScope , final Id entityId , final UUID version , final MvccEntitySerializationStrategyV3Impl . RowOp op ) { } @ Override public int getImplementationVersion ( ) { } private static interface RowOp { void doOp ( ColumnListMutation < Boolean > colMutation ) { } } protected static class EntityWrapper { protected final Status status ; protected final UUID version ; protected final Optional < Entity > entity ; protected EntityWrapper ( final MvccEntity . Status status , final UUID version , final Optional < Entity > entity ) { } } private static final class MvccColumnParser implements ColumnParser < Boolean , MvccEntity > { private final Id id ; private final AbstractSerializer < MvccEntitySerializationStrategyV3Impl . EntityWrapper > entityJsonSerializer ; private MvccColumnParser ( final Id id , final AbstractSerializer < MvccEntitySerializationStrategyV3Impl . EntityWrapper > entityJsonSerializer ) { } @ Override public MvccEntity parseColumn ( Column < Boolean > column ) { } } public final class EntitySerializer extends AbstractSerializer < MvccEntitySerializationStrategyV3Impl . EntityWrapper > { private final SmileFactory SMILE_FACTORY = new SmileFactory ( ) ; private final ObjectMapper MAPPER = new ObjectMapper ( SMILE_FACTORY ) ; private SerializationFig serializationFig ; private byte STATE_COMPLETE = 0 ; private byte STATE_DELETED = 1 ; private byte VERSION = 1 ; public EntitySerializer ( final SerializationFig serializationFig ) { } @ Override public ByteBuffer toByteBuffer ( final MvccEntitySerializationStrategyV3Impl . EntityWrapper wrapper ) { } @ Override public MvccEntitySerializationStrategyV3Impl . EntityWrapper fromByteBuffer ( final ByteBuffer byteBuffer ) { final FieldBuffer fieldBuffer ; try { fieldBuffer = MvccEntitySerializationStrategyV3Impl . FIELD_BUFFER_SERIALIZER . fromByteBuffer ( byteBuffer ) ; } catch ( Exception e ) { throw new DataCorruptionException ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>de-serialze<seq2seq4repair_space>entity" , e ) ; } final FieldBufferParser parser = new FieldBufferParser ( fieldBuffer ) ; final byte version = parser . readByte ( ) ; if ( ( VERSION ) != version ) { throw new UnsupportedOperationException ( ( ( "A<seq2seq4repair_space>version<seq2seq4repair_space>of<seq2seq4repair_space>type<seq2seq4repair_space>" + version ) + "<seq2seq4repair_space>is<seq2seq4repair_space>unsupported" ) ) ; } final UUID entityVersion = parser . readUUID ( ) ; final byte state = parser . readByte ( ) ; if ( ( STATE_DELETED ) == state ) { <START_BUG> return new MvccEntitySerializationStrategyV3Impl . EntityWrapper ( Status . COMPLETE , entityVersion , Optional . < Entity > absent ( ) ) ; <END_BUG> } EntityMap storedEntity ; byte [ ] array = parser . readBytes ( ) ; try { storedEntity = MAPPER . readValue ( array , EntityMap . class ) ; } catch ( Exception e ) { throw new DataCorruptionException ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>read<seq2seq4repair_space>entity<seq2seq4repair_space>data" , e ) ; } Entity entityObject = Entity . fromMap ( storedEntity ) ; final Optional < Entity > entity = Optional . of ( entityObject ) ; return new MvccEntitySerializationStrategyV3Impl . EntityWrapper ( Status . COMPLETE , entityVersion , entity ) ; } } }

Fix:
return new MvccEntitySerializationStrategyV3Impl . EntityWrapper ( Status . DELETED , entityVersion , Optional . < Entity > absent ( ) ) ;