[
https://issues.apache.org/jira/browse/DERBY-3033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12528197
]
Bryan Pendleton commented on DERBY-3033:
----------------------------------------
I played around with the skipScan repro case and confirmed Kathey's suspicion
about
BaseActivation.getColumnFromRow, as follows:
- with the current trunk, the repro case gives me the expected NPE in skipScan.
- with the "if" statement removed from BaseActivation.getColumnFromRow, the
repro case gives me a NPE which matches the NPE that Kathey posted from the
old bug 4736. So this reproduction case definitely takes the code through a
similar code path as that of bug 4736.
Here's the stack trace I get with the current trunk with the "if" removed from
getColumnFromRow:
2007-09-18 00:18:51.793 GMT Thread[DRDAConnThread_2,5,main] (XID = 352997),
(SESSIONID = 0), (DATABASE = viewer), (DRDAID =
NF000001.B54B-810083792898537651{1}), Failed Statement is: select study_id,
number_of_images from (select distinct st.study_id,
st.number_of_images, dsr.priority,
st.creation_datetime from dicom_send_requests dsr, studies st where
dsr.send_date is null and dsr.workstation_id = ? and
dsr.study_id = st.study_id and not exists ( select 1
from dispatcher_locks where dispatcher_locks.study_id =
st.study_id and dispatcher_locks.workstation_id = ?
and dispatcher_locks.dispatcher_id = ? ) ) temp with 3
parameters begin parameter #1: 4 :end parameter begin parameter #2: 4 :end
parameter begin parameter #3: 100 :end parameter
ERROR 38000: The exception 'java.lang.NullPointerException' was thrown while
evaluating an expression.
at
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:294)
at
org.apache.derby.iapi.error.StandardException.unexpectedUserException(StandardException.java:554)
at
org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:164)
at
org.apache.derby.impl.sql.execute.TableScanResultSet.openCore(TableScanResultSet.java:258)
at
org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.openCore(IndexRowToBaseRowResultSet.java:225)
at
org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(ProjectRestrictResultSet.java:168)
at
org.apache.derby.impl.sql.execute.JoinResultSet.openRight(JoinResultSet.java:272)
at
org.apache.derby.impl.sql.execute.JoinResultSet.openCore(JoinResultSet.java:151)
at
org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(ProjectRestrictResultSet.java:168)
at
org.apache.derby.impl.sql.execute.SortResultSet.openCore(SortResultSet.java:248)
at
org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(ProjectRestrictResultSet.java:168)
at
org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(BasicNoPutResultSetImpl.java:248)
at
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1225)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1649)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedPreparedStatement.java:1304)
at
org.apache.derby.impl.drda.DRDAStatement.execute(DRDAStatement.java:666)
at
org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:824)
at
org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:275)
Caused by: java.lang.NullPointerException
at
org.apache.derby.impl.sql.execute.BaseActivation.getColumnFromRow(BaseActivation.java:1317)
at
org.apache.derby.exe.ac601a400fx0115x15fbx3163xffff9ef86e6e1.e7(Unknown Source)
at
org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:153)
... 16 more
============= begin nested exception, level (1) ===========
java.lang.NullPointerException
at
org.apache.derby.impl.sql.execute.BaseActivation.getColumnFromRow(BaseActivation.java:1317)
at
org.apache.derby.exe.ac601a400fx0115x15fbx3163xffff9ef86e6e1.e7(Unknown Source)
at
org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:153)
at
org.apache.derby.impl.sql.execute.TableScanResultSet.openCore(TableScanResultSet.java:258)
at
org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.openCore(IndexRowToBaseRowResultSet.java:225)
at
org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(ProjectRestrictResultSet.java:168)
at
org.apache.derby.impl.sql.execute.JoinResultSet.openRight(JoinResultSet.java:272)
at
org.apache.derby.impl.sql.execute.JoinResultSet.openCore(JoinResultSet.java:151)
at
org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(ProjectRestrictResultSet.java:168)
at
org.apache.derby.impl.sql.execute.SortResultSet.openCore(SortResultSet.java:248)
at
org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(ProjectRestrictResultSet.java:168)
at
org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(BasicNoPutResultSetImpl.java:248)
at
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1225)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1649)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedPreparedStatement.java:1304)
at
org.apache.derby.impl.drda.DRDAStatement.execute(DRDAStatement.java:666)
at
org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:824)
at
org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:275)
> select query results in nullpointer exception in skipScan()
> -----------------------------------------------------------
>
> Key: DERBY-3033
> URL: https://issues.apache.org/jira/browse/DERBY-3033
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.2.2.0
> Environment: Windows XP, Java 5.0, JDBC, Derby 10.2.2.0
> Reporter: Haolan Qin
> Attachments: bug4736.sql, d3033-sane-ij-session-10.3.1.5.txt,
> query_plan.new, query_plan.old, test.rar, test.zip, viewer_10_1.zip
>
>
> The following error was repeatedly thrown when we tried to run a select query
> via JDBC. Strangely, the exact same select query did not trigger any error
> when run from the command line console. After we added an index, the error
> went away completely.
> java.lang.NullPointerException
> at org.apache.derby.impl.sql.execute.NoPutResultSetImpl.skipScan(Unknown
> Source)
> at org.apache.derby.impl.sql.execute.TableScanResultSet.openCore(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.openCore(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown
> Source)
> at org.apache.derby.impl.sql.execute.JoinResultSet.openRight(Unknown Source)
> at org.apache.derby.impl.sql.execute.JoinResultSet.openCore(Unknown Source)
> at
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown
> Source)
> at org.apache.derby.impl.sql.execute.SortResultSet.openCore(Unknown Source)
> at
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown
> Source)
> at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.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.EmbedPreparedStatement.executeStatement(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown Source)
> at org.apache.derby.impl.drda.DRDAStatement.execute(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.