Buggy code:
class HashTableResultSet extends NoPutResultSetImpl implements CursorResultSet { public long restrictionTime ; public long projectionTime ; public int hashtableSize ; public Properties scanProperties ; public NoPutResultSet source ; public GeneratedMethod singleTableRestriction ; public Qualifier [ ] [ ] nextQualifiers ; private GeneratedMethod projection ; private int [ ] projectMapping ; private boolean runTimeStatsOn ; private ExecRow mappedResultRow ; public boolean reuseResult ; public int [ ] keyColumns ; private boolean removeDuplicates ; private long maxInMemoryRowCount ; private int initialCapacity ; private float loadFactor ; private boolean skipNullKeyColumns ; private boolean firstNext = true ; private int numFetchedOnNext ; private int entryVectorSize ; private List entryVector ; private boolean hashTableBuilt ; private boolean firstIntoHashtable = true ; private ExecRow nextCandidate ; private ExecRow projRow ; private BackingStoreHashtable ht ; HashTableResultSet ( NoPutResultSet s , Activation a , GeneratedMethod str , Qualifier [ ] [ ] nextQualifiers , GeneratedMethod p , int resultSetNumber , int mapRefItem , boolean reuseResult , int keyColItem , boolean removeDuplicates , long maxInMemoryRowCount , int initialCapacity , float loadFactor , boolean skipNullKeyColumns , double optimizerEstimatedRowCount , double optimizerEstimatedCost ) throws StandardException { } public void openCore ( ) throws StandardException { } public void reopenCore ( ) throws StandardException { } private void resetProbeVariables ( ) throws StandardException { } public ExecRow getNextRowCore ( ) throws StandardException { ExecRow result = null ; DataValueDescriptor [ ] columns = null ; beginTime = getCurrentTimeMillis ( ) ; if ( isOpen ) { do { if ( firstNext ) { firstNext = false ; Object hashEntry ; if ( ( keyColumns . length ) == 1 ) { hashEntry = ht . get ( nextQualifiers [ 0 ] [ 0 ] . getOrderable ( ) ) ; } else { KeyHasher mh = new KeyHasher ( keyColumns . length ) ; for ( int index = 0 ; index < ( keyColumns . length ) ; index ++ ) { mh . setObject ( index , nextQualifiers [ 0 ] [ index ] . getOrderable ( ) ) ; } hashEntry = ht . get ( mh ) ; } if ( hashEntry instanceof List ) { entryVector = ( ( List ) ( hashEntry ) ) ; entryVectorSize = entryVector . size ( ) ; columns = ( ( DataValueDescriptor [ ] ) ( entryVector . get ( 0 ) ) ) ; } else { entryVector = null ; entryVectorSize = 0 ; columns = ( ( DataValueDescriptor [ ] ) ( hashEntry ) ) ; } } else if ( ( numFetchedOnNext ) < ( entryVectorSize ) ) { columns = ( ( DataValueDescriptor [ ] ) ( entryVector . get ( numFetchedOnNext ) ) ) ; } if ( columns != null ) { if ( SanityManager . DEBUG ) { for ( int i = 0 ; i < ( columns . length ) ; i ++ ) { <START_BUG> if ( ! ( ( columns [ 0 ] ) instanceof Storable ) ) { <END_BUG> SanityManager . THROWASSERT ( ( ( ( "columns[" + i ) + "]<seq2seq4repair_space>expected<seq2seq4repair_space>to<seq2seq4repair_space>be<seq2seq4repair_space>Storable,<seq2seq4repair_space>not<seq2seq4repair_space>" ) + ( columns [ i ] . getClass ( ) . getName ( ) ) ) ) ; } } } boolean qualifies = true ; if ( SanityManager . DEBUG ) { SanityManager . ASSERT ( ( ( nextQualifiers . length ) == 1 ) ) ; } for ( int index = 0 ; index < ( nextQualifiers [ 0 ] . length ) ; index ++ ) { Qualifier q = nextQualifiers [ 0 ] [ index ] ; qualifies = columns [ q . getColumnId ( ) ] . compare ( q . getOperator ( ) , q . getOrderable ( ) , q . getOrderedNulls ( ) , q . getUnknownRV ( ) ) ; if ( q . negateCompareResult ( ) ) { qualifies = ! qualifies ; } if ( ! qualifies ) { break ; } } if ( qualifies ) { for ( int index = 0 ; index < ( columns . length ) ; index ++ ) { nextCandidate . setColumn ( ( index + 1 ) , columns [ index ] ) ; } result = doProjection ( nextCandidate ) ; } else { result = null ; } ( numFetchedOnNext ) ++ ; } else { result = null ; } } while ( ( result == null ) && ( ( numFetchedOnNext ) < ( entryVectorSize ) ) ) ; } setCurrentRow ( result ) ; nextTime += getElapsedMillis ( beginTime ) ; if ( runTimeStatsOn ) { if ( ! ( isTopResultSet ) ) { StatementContext sc = activation . getLanguageConnectionContext ( ) . getStatementContext ( ) ; subqueryTrackingArray = sc . getSubqueryTrackingArray ( ) ; } nextTime += getElapsedMillis ( beginTime ) ; } return result ; } public long getTimeSpent ( int type ) { } public void close ( ) throws StandardException { } public RowLocation getRowLocation ( ) throws StandardException { } public ExecRow getCurrentRow ( ) throws StandardException { } private ExecRow doProjection ( ExecRow sourceRow ) throws StandardException { } public DataValueDescriptor [ ] getNextRowFromRowSource ( ) throws StandardException { } public boolean isForUpdate ( ) { } }

Fix:
if ( ! ( ( columns [ i ] ) instanceof Storable ) ) {