It appears that at line 2097 in JdbcRowSetImpl.java (which I think is int rstype = rs.getType()) a NPE is thrown even though I setType() for JdbcRowSetImpl to ResultSet.TYPE_FORWARD_ONLY. This is because when using the constructor JdbcRowSetImpl(strUrl,strUserId, strPassword) without executing a statement, ResultSet is null and its type is also null. So calling getType(), even though it was set before throws NPE.
TEST SRC SNIPPET:
111            jrs1 = new JdbcRowSetImpl(strUrl,strUserId, strPassword);
112            jrs1.setType(ResultSet.TYPE_FORWARD_ONLY);
113            logMsg("Type set to: "+ ResultSet.TYPE_FORWARD_ONLY);
114
115            logMsg("Type is: "+ResultSet.TYPE_FORWARD_ONLY);
116
117            if(jrs1.getType() == ResultSet.TYPE_FORWARD_ONLY) {
118                logMsg("Test for Type passes...");
119            } else {
120                logMsg("Test for Type fails...");
121                throw new TestFailureException("JdbcRowSet test fails");
122            }
123        } catch (SQLException sqle) {
124            logErr("SQL Exception encountered " + sqle.getMessage());
125            throw new TestFailureException("JdbcRowSet Test failed", sqle);
126        } catch (Exception e) {
127            logErr("Unexpected Exception " + e.getMessage());
128            throw new TestFailureException("JdbcRowSet Test failed", e);
129        }
SRC SNIPPET:
    /**
     *
     * Returns the fetch size for this
     * <code>ResultSet</code> object.
     *
     * @return the current fetch size for this rowset's <code>ResultSet</code> object
     * @throws SQLException if a database access error occurs
     *            or this rowset does not currently have a valid connection,
     *            prepared statement, and result set
     */
    public int getType() throws SQLException {
        try {
             checkState();
        } catch(SQLException sqle) {
            return super.getType();
        }
        try {
            int rstype = rs.getType();
            return rstype;
        } catch(NullPointerException npe) {
             throw new SQLException("Cannot return the type of a closed ResultSet : " + npe);
        }
    }
OUTPUT:
[2006-11-14T18:37:11.58] SQL Exception encountered Cannot return the type of a closed ResultSet : java.lang.NullPointerException
[2006-11-14T18:37:12.48] Error: JdbcRowset2_012 : JdbcRowSet Test failed
[2006-11-14T18:37:12.48] com.sun.j2se_sqe.jdbc.utils.TestFailureException: JdbcRowSet Test failed
[2006-11-14T18:37:12.48]        at JdbcRowset2_012.doTest(JdbcRowset2_012.java:125)
[2006-11-14T18:37:12.48]        at JdbcRowset2_012.main(JdbcRowset2_012.java:183)
[2006-11-14T18:37:12.48] Caused by: java.sql.SQLException: Cannot return the type of a closed ResultSet : java.lang.NullPointerException
[2006-11-14T18:37:12.48]        at com.sun.rowset.JdbcRowSetImpl.getType(JdbcRowSetImpl.java:2097)
[2006-11-14T18:37:12.48]        at JdbcRowset2_012.doTest(JdbcRowset2_012.java:117)
[2006-11-14T18:37:12.48]        ... 1 more
[2006-11-14T18:37:12.48] # Test level exit status: 1
[2006-11-14T18:37:12.48] PropertyReader: SQL_DIR_PATH=/home/sandeepk/workspace/7.0/jdbc/4.0_tests/workDir
[2006-11-14T18:37:12.48] PropertyReader: SQL_FILE_NAME=initdb.conf
[2006-11-14T18:37:12.48] PropertyReader: SQL_ABS_PATH=/home/sandeepk/workspace/7.0/jdbc/4.0_tests/workDir/initdb.conf
[2006-11-14T18:37:12.48] Loading the driver class com.inet.ora.OraDriver
[2006-11-14T18:37:12.48] Loading the driver class com.inet.ora.OraDriver
[2006-11-14T18:37:12.48] Starting the test...
[2006-11-14T18:37:12.48] Getting a new Jdbc RowSet
[2006-11-14T18:37:12.48] Coammand  is: Select * from CRS_Objects
[2006-11-14T18:37:12.48] Type set to: 1003
[2006-11-14T18:37:12.48] Type is: 1003