[ 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.