Buggy code:
public class ScrollInsensitiveResultSet extends NoPutResultSetImpl implements CursorResultSet { public NoPutResultSet source ; private int sourceRowWidth ; private BackingStoreHashtable ht ; private ExecRow resultRow ; private int positionInSource ; private int currentPosition ; private int lastPosition ; private boolean seenFirst ; private boolean seenLast ; private boolean beforeFirst = true ; private boolean afterLast ; public int numFromHashTable ; public int numToHashTable ; private int maxRows ; private boolean keepAfterCommit ; private int extraColumns ; private SQLInteger positionInHashTable ; private CursorResultSet target ; private boolean needsRepositioning ; private static final int POS_ROWLOCATION = 1 ; private static final int POS_ROWDELETED = 2 ; private static final int POS_ROWUPDATED = 3 ; private static final int LAST_EXTRA_COLUMN = 3 ; public ScrollInsensitiveResultSet ( NoPutResultSet source , Activation activation , int resultSetNumber , int sourceRowWidth , double optimizerEstimatedRowCount , double optimizerEstimatedCost ) throws StandardException { } public void openCore ( ) throws StandardException { } public void reopenCore ( ) throws StandardException { } public ExecRow getAbsoluteRow ( int row ) throws StandardException { } public ExecRow getRelativeRow ( int row ) throws StandardException { } public ExecRow setBeforeFirstRow ( ) { } public ExecRow getFirstRow ( ) throws StandardException { } public ExecRow getNextRowCore ( ) throws StandardException { } public ExecRow getPreviousRow ( ) throws StandardException { if ( ! ( isOpen ) ) { <START_BUG> throw StandardException . newException ( LANG_RESULT_SET_NOT_OPEN , "next" ) ; <END_BUG> } if ( SanityManager . DEBUG ) { if ( ! ( isTopResultSet ) ) { SanityManager . THROWASSERT ( ( ( this ) + "expected<seq2seq4repair_space>to<seq2seq4repair_space>be<seq2seq4repair_space>the<seq2seq4repair_space>top<seq2seq4repair_space>ResultSet" ) ) ; } } if ( ( beforeFirst ) || ( ( currentPosition ) == 0 ) ) { currentRow = null ; return null ; } if ( afterLast ) { if ( ( lastPosition ) == 0 ) { afterLast = false ; beforeFirst = false ; currentRow = null ; return null ; } else { return getRowFromHashTable ( lastPosition ) ; } } ( currentPosition ) -- ; if ( ( currentPosition ) == 0 ) { setBeforeFirstRow ( ) ; return null ; } return getRowFromHashTable ( currentPosition ) ; } public ExecRow getLastRow ( ) throws StandardException { } public ExecRow setAfterLastRow ( ) throws StandardException { } public boolean checkRowPosition ( int isType ) throws StandardException { } public int getRowNumber ( ) { } private ExecRow getNextRowFromSource ( ) throws StandardException { } public void close ( ) throws StandardException { } public void finish ( ) throws StandardException { } public long getTimeSpent ( int type ) { } public RowLocation getRowLocation ( ) throws StandardException { } public ExecRow getCurrentRow ( ) throws StandardException { } private void addRowToHashTable ( ExecRow sourceRow , int position , RowLocation rowLoc , boolean rowUpdated ) throws StandardException { } private ExecRow getRowFromHashTable ( int position ) throws StandardException { } private DataValueDescriptor [ ] getRowArrayFromHashTable ( int position ) throws StandardException { } private void positionInLastFetchedRow ( ) throws StandardException { } public void updateRow ( ExecRow row , RowChanger rowChanger ) throws StandardException { } public void markRowAsDeleted ( ) throws StandardException { } public boolean isDeleted ( ) throws StandardException { } public boolean isUpdated ( ) throws StandardException { } public boolean isForUpdate ( ) { } }

Fix:
throw StandardException . newException ( LANG_RESULT_SET_NOT_OPEN , "previous" ) ;