public Object getProperty(String propertyName, int hash) {
public Object getProperty(int index) { if (!firstRowSeen) { lastError = new SQLException("Attempt to access data before the first row is read"); return null; } if (resultSet == null) { lastError = new SQLException("Attempt to access a released result set"); return null; }
    public Object getProperty(String propertyName, int hash) {        //System.err.println(" &&& Getting property '" + propertyName + "'");        // Length property is firsy checked        // First return system or or prototype properties        if (propertyName.equals("length")) {             return new Integer(colNames.size());        } else {           if (resultSet == null) {                lastError = new SQLException("Attempt to access a released result set");                return null;           }            if (!firstRowSeen) {                lastError = new SQLException("Attempt to access data before the first row is read");                return null;            }           try {                int index = -1; // indicates not a valid index value                try {                    char c = propertyName.charAt(0);                    if ('0' <= c && c <= '9') {                       index = Integer.parseInt(propertyName);                    }                } catch (NumberFormatException e) {                } catch (StringIndexOutOfBoundsException e) { // for charAt                }                if (index>=0) {                    return getProperty(index);                }               Object value = resultSet.getObject(propertyName);               // IServer.getLogger().log("&& @VALUE : " + value);               lastError = null;               return value;           } catch (SQLException e) {              // System.err.println("##Cannot get property '" + propertyName + "' " + e);              // e.printStackTrace();              lastError = e;           }         }        return null;     }