Buggy code:
@ JsonAutoDetect ( fieldVisibility = JsonAutoDetect . Visibility . PUBLIC_ONLY ) @ JsonInclude ( JsonInclude . Include . NON_NULL ) @ JsonIgnoreProperties ( ignoreUnknown = true ) public final class Annotation implements Comparable < Annotation > { private static final Logger LOG = LoggerFactory . getLogger ( Annotation . class ) ; private static final Charset CHARSET = Charset . forName ( "ISO-8859-1" ) ; private static final byte PREFIX = 1 ; private static final byte [ ] FAMILY = "t" . getBytes ( Annotation . CHARSET ) ; private String tsuid = "" ; private long start_time = 0 ; private long end_time = 0 ; private String description = "" ; private String notes = "" ; private HashMap < String , String > custom = null ; private final HashMap < String , Boolean > changed = new HashMap < String , Boolean > ( ) ; public Annotation ( ) { } @ Override public String toString ( ) { } @ Override public int compareTo ( Annotation note ) { } public Deferred < Boolean > syncToStorage ( final TSDB tsdb , final Boolean overwrite ) { } public Deferred < Object > delete ( final TSDB tsdb ) { } public static Deferred < Annotation > getAnnotation ( final TSDB tsdb , final long start_time ) { } public static Deferred < Annotation > getAnnotation ( final TSDB tsdb , final String tsuid , final long start_time ) { } public static Deferred < Annotation > getAnnotation ( final TSDB tsdb , final byte [ ] tsuid , final long start_time ) { } public static Deferred < List < Annotation > > getGlobalAnnotations ( final TSDB tsdb , final long start_time , final long end_time ) { if ( end_time < 1 ) { throw new IllegalArgumentException ( "The<seq2seq4repair_space>end<seq2seq4repair_space>timestamp<seq2seq4repair_space>has<seq2seq4repair_space>not<seq2seq4repair_space>been<seq2seq4repair_space>set" ) ; } if ( end_time < start_time ) { throw new IllegalArgumentException ( "The<seq2seq4repair_space>end<seq2seq4repair_space>timestamp<seq2seq4repair_space>cannot<seq2seq4repair_space>be<seq2seq4repair_space>less<seq2seq4repair_space>than<seq2seq4repair_space>the<seq2seq4repair_space>start<seq2seq4repair_space>timestamp" ) ; } final class ScannerCB implements Callback < Deferred < List < Annotation > > , ArrayList < ArrayList < KeyValue > > > { final Scanner scanner ; final ArrayList < Annotation > annotations = new ArrayList < Annotation > ( ) ; public ScannerCB ( ) { } public Deferred < List < Annotation > > scan ( ) { return scanner . nextRows ( ) . addCallbackDeferring ( this ) ; } @ Override public Deferred < List < Annotation > > call ( final ArrayList < ArrayList < KeyValue > > rows ) throws Exception { if ( ( rows == null ) || ( rows . isEmpty ( ) ) ) { return Deferred . fromResult ( ( ( List < Annotation > ) ( annotations ) ) ) ; } for ( final ArrayList < KeyValue > row : rows ) { for ( KeyValue column : row ) { if ( ( ( column . qualifier ( ) . length ) == 3 ) && ( ( column . qualifier ( ) [ 0 ] ) == ( Annotation . PREFIX ( ) ) ) ) { <START_BUG> Annotation note = JSON . parseToObject ( row . get ( 0 ) . value ( ) , Annotation . class ) ; <END_BUG> if ( ( ( note . start_time ) < start_time ) || ( ( note . end_time ) > end_time ) ) { continue ; } annotations . add ( note ) ; } } } return scan ( ) ; } } return new ScannerCB ( ) . scan ( ) ; } public static byte PREFIX ( ) { } private byte [ ] getStorageJSON ( ) { } private void syncNote ( final Annotation note , final boolean overwrite ) { } private void initializeChangedMap ( ) { } private static byte [ ] getQualifier ( final long start_time ) { } private static byte [ ] getRowKey ( final long start_time , final byte [ ] tsuid ) { } public final String getTSUID ( ) { } public final long getStartTime ( ) { } public final long getEndTime ( ) { } public final String getDescription ( ) { } public final String getNotes ( ) { } public final Map < String , String > getCustom ( ) { } public void setTSUID ( final String tsuid ) { } public void setStartTime ( final long start_time ) { } public void setEndTime ( final long end_time ) { } public void setDescription ( final String description ) { } public void setNotes ( final String notes ) { } public void setCustom ( final Map < String , String > custom ) { } }

Fix:
Annotation note = JSON . parseToObject ( column . value ( ) , Annotation . class ) ;