db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4549) NPE in JBitSet
Date Tue, 16 Feb 2010 12:45:27 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4549?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Knut Anders Hatlen updated DERBY-4549:
--------------------------------------

    Attachment: preprocess.diff

It looks like the problem is very similar to DERBY-1574, only that in this case it's SubqueryNode
that forgets to call preprocess() recursively on leftOperand. The attached patch (preprocess.diff)
makes the NPE go away, and all the lang tests ran cleanly with it.

> NPE in JBitSet
> --------------
>
>                 Key: DERBY-4549
>                 URL: https://issues.apache.org/jira/browse/DERBY-4549
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.3.1.4, 10.5.3.0, 10.6.0.0
>            Reporter: Murat Knecht
>         Attachments: preprocess.diff
>
>
> A NPE occurs at org.apache.derby.iapi.util.JBitSet.or().
> A NPE occured at the same location before: http://issues.apache.org/jira/browse/DERBY-1574
> The bug was confirmed by Bryan Pendleton to show in the HEAD as well: http://mail-archives.apache.org/mod_mbox/db-derby-user/201002.mbox/%3C4B79F74E.1000005@amberpoint.com%3E
> To reproduce:
> ----------------------
> CREATE TABLE ABC (ID int PRIMARY KEY NOT NULL);
> CREATE TABLE DEF (ID int PRIMARY KEY NOT NULL);
> SELECT * 
> FROM ABC t1
> WHERE (SELECT DISTINCT t2.ID FROM DEF t2) 
>         IN (SELECT t3.ID FROM DEF t3) 
> ----------------------
> Leads to 
> error message: 
> Error: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U
> SQLState:  XJ001
> ErrorCode: -1
> Stacktrace:
> java.lang.NullPointerException
> 	at org.apache.derby.iapi.util.JBitSet.or(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.OptimizerImpl.<init>(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.Level2OptimizerImpl.<init>(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.Level2OptimizerFactoryImpl.getOptimizerImpl(Unknown
Source)
> 	at org.apache.derby.impl.sql.compile.OptimizerFactoryImpl.getOptimizer(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.ResultSetNode.getOptimizer(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.SelectNode.optimize(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.SubqueryNode.optimize(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.SubqueryList.optimize(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.SelectNode.optimize(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.DMLStatementNode.optimizeStatement(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.CursorNode.optimizeStatement(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> 	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown
Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source)
> 	at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAStatement.prepare(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
> 	at org.apache.derby.impl.drda.DRDAConnThread.run(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