Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-6006

NullPointerException in INSERT INTO ... SELECT FROM ... ORDER BY

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.6.2.1, 10.7.1.1, 10.8.3.0, 10.9.1.0
    • 10.8.3.3, 10.9.2.2, 10.10.1.1
    • Store
    • None
    • Repro attached
    • Seen in production

    Description

      A NullPointerException was reported by Harm-Jan Zwinderman on derby-user:
      http://mail-archives.apache.org/mod_mbox/db-derby-user/201211.mbox/%3C50B66527.5040906%40gmail.com%3E

      I've managed to reproduce it on 10.9.1.0 like this:

      ij version 10.9
      ij> connect 'jdbc:derby:memory:db;create=true';
      ij> create table t(x double);
      0 rows inserted/updated/deleted
      ij> insert into t values (0);
      1 row inserted/updated/deleted
      ij> prepare ps as 'insert into t select 1 from t order by x';
      ij> execute ps;
      1 row inserted/updated/deleted
      ij> execute ps;
      2 rows inserted/updated/deleted
      ij> execute ps;
      4 rows inserted/updated/deleted
      ij> execute ps;
      ERROR XJ001: Java exception: ': java.lang.NullPointerException'.

      Full stack trace:

      java.lang.NullPointerException
      at org.apache.derby.impl.store.access.conglomerate.ConglomerateUtil.createFormatIds(Unknown Source)
      at org.apache.derby.impl.store.access.heap.Heap.create(Unknown Source)
      at org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.createConglomerate(Unknown Source)
      at org.apache.derby.impl.store.access.RAMTransaction.createConglomerate(Unknown Source)
      at org.apache.derby.impl.sql.execute.TemporaryRowHolderImpl.insert(Unknown Source)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown Source)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source)
      at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown Source)
      at org.apache.derby.impl.tools.ij.ij.ExecuteStatement(Unknown Source)
      at org.apache.derby.impl.tools.ij.ij.ijStatement(Unknown Source)
      at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(Unknown Source)
      at org.apache.derby.impl.tools.ij.utilMain.go(Unknown Source)
      at org.apache.derby.impl.tools.ij.Main.go(Unknown Source)
      at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown Source)
      at org.apache.derby.impl.tools.ij.Main.main(Unknown Source)
      at org.apache.derby.tools.ij.main(Unknown Source)
      at org.apache.derby.iapi.tools.run.main(Unknown Source)

      Attachments

        1. d6006-1a-remove-extra-columns.diff
          3 kB
          Knut Anders Hatlen

        Issue Links

          Activity

            People

              knutanders Knut Anders Hatlen
              knutanders Knut Anders Hatlen
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: