Details
Description
The following is not a bug, however some applications do not always need to scroll to the last row, however they do want to check isLast(). Therefore it is unfortunate that isLast() is expensive. The general logic in ScrollInsensitiveResultSet is to populate rows by demand.
The current logic in ScrollInsensitiveResultSet to return true or false on isLast(), is to move to the last row. If the last row is not the same row number as the current, then isLast() returns false. When moving to the last row, all rows will be populated into the BackingStoreHashtable of the ScrollInsensitiveResultSet.
This logic may be rewritten to only move to the next row. If the next row exists, isLast() may return false.
(note the logic is also optimized to use beforeFirst and afterLast flags)