db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chip Hartney (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4043) NullPointerException executing DELETE against table involved in DELETE CASCADE referential constraint
Date Sun, 01 Feb 2009 15:49:59 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4043?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12669396#action_12669396
] 

Chip Hartney commented on DERBY-4043:
-------------------------------------

You are correct, Knut.  The error does not occur with logQueryPlan=false, only true.  At least
in my v10.4.2.0 test.

I can't be sure if this is the same as DERBY-2353...the stack traces are not the same, but
somewhat similar...both failing in NoRowsResultSetImpl in the end and both, apparently only
occurring with logQueryPlan=true.

The really interesting note, I think, is Bryan's in that issue...where he refers back to DERBY-3091...reported
in Sept 2007...by me!  I only now remember that issue and I was suspicious that it hadn't
really been resolved then.  However, it was not a big problem using logQueryPlan=false in
my distributions to our users...so I didn't pursue it any further.  That failed in v10.2.2.0
and v10.2.2.1, but not v10.3.2.1.


> NullPointerException executing DELETE against table involved in DELETE CASCADE referential
constraint
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4043
>                 URL: https://issues.apache.org/jira/browse/DERBY-4043
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.4.2.0
>         Environment: Windows XP
> Use encrypted, soft-upgraded DB (from v10.3.2.1)
>            Reporter: Chip Hartney
>
> I am incurring a NullPointerException in the DELETE CASCADE logic of v10.4.2.0.  After
the error, the connection is lost.
> The following is reproducible in my env in which I have a DB created under v10.3.2.1
being accessed through IJ using the v10.4.2.0 libraries.  (I have not tested against other
scenarios.)  Note, however, that variations on this sequence do not recreate the problem...such
as leaving off the PK constraints or adding data to the tables before creating the constraints
or leaving out the "Entry" record.
> ij> CREATE TABLE "Catalog" ("Id" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START
WITH 1, INCREMENT BY 1), "Code" VARCHAR(8) NOT NULL, "Name" VARCHAR(64) NOT NULL, "SeqNo"
INTEGER NOT NULL DEFAULT 0);
> 0 rows inserted/updated/deleted
> ij> ALTER TABLE "Catalog" ADD CONSTRAINT "SQL171213084206750" PRIMARY KEY ("Id");
> 0 rows inserted/updated/deleted
> ij> CREATE TABLE "Entry" ("Id" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START
WITH 1, INCREMENT BY 1), "CatalogId" INTEGER NOT NULL, "ProductId" INTEGER NOT NULL, "PageNo"
INTEGER NOT NULL, "SeqNo" INTEGER NOT NULL);
> 0 rows inserted/updated/deleted
> ij> ALTER TABLE "Entry" ADD CONSTRAINT "SQL171213084210150" PRIMARY KEY ("Id");
> 0 rows inserted/updated/deleted
> ij> ALTER TABLE "Entry" ADD CONSTRAINT "Entry_FK_CatalogId1" FOREIGN KEY ("CatalogId")
REFERENCES "Catalog" ("Id") ON DELETE CASCADE ON UPDATE NO ACTION;
> 0 rows inserted/updated/deleted
> ij> insert into "Catalog" ("Code", "Name") values ('a', 'a');
> 1 row inserted/updated/deleted
> ij> insert into "Entry" ("CatalogId", "ProductId", "PageNo", "SeqNo") values (1, 1,
1, 1);
> 1 row inserted/updated/deleted
> ij> delete from "Catalog";
> ERROR XJ001: Java exception: ': java.lang.NullPointerException'.
> ij> select * from "Catalog";
> ERROR 08003: No current connection.
> The stack trace from derby.log is:
> 2009-01-31 20:12:48.890 GMT Thread[main,5,main] (XID = 8949829), (SESSIONID = 0), (DATABASE
= OrderEntryDB), (DRDAID = null), Cleanup action starting
> 2009-01-31 20:12:48.890 GMT Thread[main,5,main] (XID = 8949829), (SESSIONID = 0), (DATABASE
= OrderEntryDB), (DRDAID = null), Failed Statement is: delete from "Catalog"
> java.lang.NullPointerException
> 	at org.apache.derby.impl.sql.execute.NoRowsResultSetImpl.close(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.DeleteResultSet.cleanUp(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.cleanUp(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.cleanUp(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(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.EmbedStatement.execute(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.utilMain.doCatch(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)
> 2009-01-31 20:12:48.890 GMT Thread[main,5,main] Equally severe exception raised during
cleanup (ignored) null
> java.lang.NullPointerException
> 	at org.apache.derby.impl.sql.execute.NoRowsResultSetImpl.close(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.DeleteResultSet.cleanUp(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.cleanUp(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.cleanUp(Unknown Source)
> 	at org.apache.derby.impl.sql.conn.GenericStatementContext.cleanupOnError(Unknown Source)
> 	at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown Source)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown Source)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown Source)
> 	at org.apache.derby.impl.tools.ij.utilMain.doCatch(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)
> Cleanup action completed

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message