Derby
  1. Derby
  2. DERBY-6006

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

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 10.6.2.1, 10.7.1.1, 10.8.3.0, 10.9.1.0
    • Fix Version/s: 10.8.3.3, 10.9.2.2, 10.10.1.1
    • Component/s: Store
    • Labels:
      None
    • Issue & fix info:
      Repro attached
    • Bug behavior facts:
      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)

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Knut Anders Hatlen
              Reporter:
              Knut Anders Hatlen
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development