Buggy code:
public class XlsStreamResultSet implements ResultSet { private static enum XlsType { XLS , XLSX ; } AbstractXlsSheetIterator iterator ; private XlsStreamingResultSetMetaData metadata ; public XlsStreamResultSet ( String tableName , XlsStreamConnection connection ) throws SQLException { } XlsStreamResultSet . XlsType getXlsType ( URL inputXls ) throws IOException { } private CellValueHolder getCell ( int jdbcColumn ) { } private CellValueHolder getCell ( String jdbcColumn ) { int jdbcColumnIndex = iterator . columns . indexOf ( jdbcColumn ) ; <START_BUG> return iterator . getCurrentRowValue ( ( jdbcColumnIndex - 1 ) ) ; <END_BUG> } public ResultSetMetaData getMetaData ( ) throws SQLException { } public < T > T getObject ( int columnIndex , Class < T > type ) throws SQLException { } public < T > T getObject ( String columnName , Class < T > type ) throws SQLException { } public boolean getBoolean ( int jdbcColumn ) throws SQLException { } public boolean getBoolean ( String jdbcColumn ) throws SQLException { } public double getDouble ( int jdbcColumn ) throws SQLException { } public double getDouble ( String jdbcColumn ) throws SQLException { } public byte getByte ( int jdbcColumn ) throws SQLException { } public byte getByte ( String jdbcColumn ) throws SQLException { } public float getFloat ( int jdbcColumn ) throws SQLException { } public float getFloat ( String jdbcColumn ) throws SQLException { } public int getInt ( int jdbcColumn ) throws SQLException { } public int getInt ( String jdbcColumn ) throws SQLException { } public long getLong ( int jdbcColumn ) throws SQLException { } public long getLong ( String jdbcColumn ) throws SQLException { } public Object getObject ( String jdbcColumn ) throws SQLException { } public Object getObject ( int jdbcColumn ) throws SQLException { } public short getShort ( int jdbcColumn ) throws SQLException { } public short getShort ( String jdbcColumn ) throws SQLException { } public String getString ( int jdbcColumn ) throws SQLException { } public String getString ( String jdbcColumn ) throws SQLException { } private static Object getObject ( XlsSheetIterator . CellValueHolder cell ) throws SQLException { } public void updateBoolean ( int jdbcColumn , boolean x ) throws SQLException { } public void updateBoolean ( String jdbcColumn , boolean x ) throws SQLException { } public void updateByte ( int jdbcColumn , byte x ) throws SQLException { } public void updateByte ( String jdbcColumn , byte x ) throws SQLException { } public void updateDouble ( int jdbcColumn , double x ) throws SQLException { } public void updateDouble ( String jdbcColumn , double x ) throws SQLException { } public void updateFloat ( int jdbcColumn , float x ) throws SQLException { } public void updateFloat ( String jdbcColumn , float x ) throws SQLException { } public void updateInt ( int jdbcColumn , int x ) throws SQLException { } public void updateInt ( String jdbcColumn , int x ) throws SQLException { } public void updateLong ( int jdbcColumn , long x ) throws SQLException { } public void updateLong ( String jdbcColumn , long x ) throws SQLException { } public void updateNull ( int jdbcColumn ) throws SQLException { } public void updateNull ( String jdbcColumn ) throws SQLException { } public void updateObject ( int jdbcColumn , Object x ) throws SQLException { } public void updateObject ( String jdbcColumn , Object x ) throws SQLException { } public void updateShort ( int jdbcColumn , short x ) throws SQLException { } public void updateShort ( String jdbcColumn , short x ) throws SQLException { } public void updateString ( int jdbcColumn , String x ) throws SQLException { } public void updateString ( String jdbcColumn , String x ) throws SQLException { } public boolean absolute ( int row ) throws SQLException { } public void afterLast ( ) throws SQLException { } public void beforeFirst ( ) throws SQLException { } public boolean first ( ) throws SQLException { } public int getFetchDirection ( ) throws SQLException { } public int getFetchSize ( ) throws SQLException { } public int getRow ( ) throws SQLException { } public int getType ( ) throws SQLException { } public boolean isAfterLast ( ) throws SQLException { } public boolean isBeforeFirst ( ) throws SQLException { } public boolean isFirst ( ) throws SQLException { } public boolean isLast ( ) throws SQLException { } public boolean last ( ) throws SQLException { } public boolean next ( ) throws SQLException { } public boolean previous ( ) throws SQLException { } public void moveToInsertRow ( ) throws SQLException { } public void insertRow ( ) throws SQLException { } private IllegalStateException nyi ( ) { } public void cancelRowUpdates ( ) throws SQLException { } public void clearWarnings ( ) throws SQLException { } public void close ( ) throws SQLException { } public void deleteRow ( ) throws SQLException { } public int findColumn ( String jdbcColumn ) throws SQLException { } public Array getArray ( int i ) throws SQLException { } public Array getArray ( String colName ) throws SQLException { } public InputStream getAsciiStream ( int jdbcColumn ) throws SQLException { } public InputStream getAsciiStream ( String jdbcColumn ) throws SQLException { } public BigDecimal getBigDecimal ( int jdbcColumn ) throws SQLException { } public BigDecimal getBigDecimal ( String jdbcColumn ) throws SQLException { } public BigDecimal getBigDecimal ( int jdbcColumn , int scale ) throws SQLException { } public BigDecimal getBigDecimal ( String jdbcColumn , int scale ) throws SQLException { } public InputStream getBinaryStream ( int jdbcColumn ) throws SQLException { } public InputStream getBinaryStream ( String jdbcColumn ) throws SQLException { } public Blob getBlob ( int i ) throws SQLException { } public Blob getBlob ( String colName ) throws SQLException { } public byte [ ] getBytes ( int jdbcColumn ) throws SQLException { } public byte [ ] getBytes ( String jdbcColumn ) throws SQLException { }

Fix:
return iterator . getCurrentRowValue ( jdbcColumnIndex ) ;