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

Dag H. Wanvik commented on DERBY-4488:
--------------------------------------

More data points. 
It is a bit weird it only happens on the third execution, not the second. I 
checked a bit and found that
Knut is right, the third time, the result set is reopened which does not seem 
to work.  But it seems the first time, when the error happens, the 
InsertResultSet gets its "cleanup" method called (from 
ContextManager.cleanupOnError), so the second time we execute, InsertResultSet 
looks clean, and it calls sourceResultSet.openCore. However, on the execution 
and ensuing error, the cleanup method is not called (context manager gone?!), 
so on the third execution, InsertResultSet does no longer look unused, and so 
sourceResultSet.reopenCore is called, which then fails.  



> Nullpointer when performing INSERT INTO
> ---------------------------------------
>
>                 Key: DERBY-4488
>                 URL: https://issues.apache.org/jira/browse/DERBY-4488
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.3.1.4, 10.3.2.1, 10.3.3.0, 10.4.1.3, 10.4.2.0, 
> 10.5.1.1, 10.5.2.0, 10.5.3.0, 10.6.0.0
>            Reporter: Huib
>         Attachments: d4488.sql, debug info.txt
>
>
> To replicate, execute the following 4 queries:
> CREATE TABLE feed (fst INTEGER, snd VARCHAR(50), UNIQUE(fst))
> INSERT INTO feed VALUES (1, 'fst')
> CREATE TABLE tbl (col1 INTEGER, col2 INTEGER NOT NULL REFERENCES feed (fst) 
> ON DELETE RESTRICT ON UPDATE RESTRICT)
> INSERT INTO tbl(col1) SELECT 1 FROM feed
> The result of the last INSERT INTO query is:
> java.lang.NullPointerException
>       at 
> org.apache.derby.impl.store.access.btree.BTreeScan.initScanParams(Unknown 
> Source)
>       at 
> org.apache.derby.impl.store.access.btree.BTreeScan.reopenScan(Unknown Source)
>       at 
> org.apache.derby.impl.sql.execute.TableScanResultSet.reopenScanController(Unknown
>  Source)
>       at 
> org.apache.derby.impl.sql.execute.TableScanResultSet.reopenScanController(Unknown
>  Source)
>       at 
> org.apache.derby.impl.sql.execute.TableScanResultSet.reopenCore(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.BulkTableScanResultSet.reopenCore(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.reopenCore(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.NormalizeResultSet.reopenCore(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)

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

Reply via email to