Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6322636

FilteredRowSetImpl: throws NPE on attempt to update a DATE column

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 6
    • 6
    • core-libs
    • b97
    • generic
    • generic

      Run the example code below:

      import javax.sql.RowSet;
      import javax.sql.rowset.FilteredRowSet;
      import javax.sql.rowset.RowSetMetaDataImpl;
      import java.sql.ResultSetMetaData;
      import java.sql.Types;

      public class Failure1 {

          private static String filteredRowSetClass = "com.sun.rowset.FilteredRowSetImpl";

          public static void main(String[] args) {

              boolean passed = false;

              try {
                  FilteredRowSet frs = (FilteredRowSet)Class.forName(filteredRowSetClass).newInstance();
                  initInstance(frs);
                  passed = true;
              }
              catch (Exception e) {
                  System.out.println(e.toString());
              }

              System.out.println("Test :" + (passed ? "passed" : "failed"));
          }


          protected static void initInstance(FilteredRowSet frs) throws Exception {

              RowSetMetaDataImpl rsmdi;
              rsmdi = new RowSetMetaDataImpl();
              frs.setType(RowSet.TYPE_SCROLL_INSENSITIVE);

              rsmdi.setColumnCount(3);
              rsmdi.setColumnType(1, Types.VARCHAR);
              rsmdi.setColumnType(2, Types.INTEGER);
              rsmdi.setColumnType(3, Types.VARCHAR);

              rsmdi.setColumnName(1, "First");
              rsmdi.setColumnName(2, "Second");
              rsmdi.setColumnName(3, "Third");

              rsmdi.setNullable(1, ResultSetMetaData.columnNoNulls);
              rsmdi.setNullable(3, ResultSetMetaData.columnNullable);
              frs.setMetaData(rsmdi);

              frs.moveToInsertRow();

              frs.updateString(1, "string data");
              frs.updateInt(2, 1);
              frs.updateString(3, "StringCol31");
              frs.insertRow();

              frs.moveToInsertRow();

              frs.updateString(1, "StringCol12");
              frs.updateInt(2, 2);
              frs.updateString(3, "StringCol32");
              frs.insertRow();

              frs.moveToCurrentRow();
              frs.beforeFirst();
          }
      }
      FilteredRowSetImpl: throws NPE on attempt to update a DATE column (JDK build #86)

      import javax.sql.RowSet;
      import javax.sql.rowset.FilteredRowSet;
      import javax.sql.rowset.RowSetMetaDataImpl;
      import java.sql.ResultSetMetaData;
      import java.sql.Types;
      import java.sql.Date;

      public class Failure2 {

          private static String filteredRowSetClass = "com.sun.rowset.FilteredRowSetImpl";

          public static void main(String[] args) {

              boolean passed = false;

              try {
                  FilteredRowSet frs = (FilteredRowSet)Class.forName(filteredRowSetClass).newInstance();
                  initInstance(frs);
                  passed = true;
              }
              catch (Exception e) {
                  System.out.println(e.toString());
              }

              System.out.println("Test :" + (passed ? "passed" : "failed"));
          }


          protected static void initInstance(FilteredRowSet frs) throws Exception {

              RowSetMetaDataImpl rsmdi;
              rsmdi = new RowSetMetaDataImpl();
              frs.setType(RowSet.TYPE_SCROLL_INSENSITIVE);

              rsmdi.setColumnCount(4);
              rsmdi.setColumnType(1, Types.VARCHAR);
              rsmdi.setColumnType(2, Types.INTEGER);
              rsmdi.setColumnType(3, Types.VARCHAR);
              rsmdi.setColumnType(4, Types.DATE);

              rsmdi.setColumnName(1, "First");
              rsmdi.setColumnName(2, "Second");
              rsmdi.setColumnName(3, "Third");
              rsmdi.setColumnName(4, "Fourth");

              rsmdi.setNullable(1, ResultSetMetaData.columnNoNulls);
              rsmdi.setNullable(3, ResultSetMetaData.columnNullable);
              frs.setMetaData(rsmdi);

              frs.moveToInsertRow();

              frs.updateString(1, "string data");
              frs.updateInt(2, 1);
              frs.updateString(3, "StringCol31");
              frs.updateDate(4, new Date(1));
              frs.insertRow();

              frs.moveToInsertRow();

              frs.updateString(1, "StringCol12");
              frs.updateInt(2, 2);
              frs.updateString(3, "StringCol32");
              frs.updateDate(4, new Date(2));
              frs.insertRow();

              frs.moveToCurrentRow();
              frs.beforeFirst();
          }
      }

            ssharmasunw Sushmita Sharma (Inactive)
            rmakarch Roman Makarchuk (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: