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

ASF subversion and git services commented on DERBY-6981:
--------------------------------------------------------

Commit 1823037 from [~bryanpendleton] in branch 'code/trunk'
[ https://svn.apache.org/r1823037 ]

DERBY-6981: NullPointerException when re-executing PreparedStatement query.

TableScanResultSet's past2FutureTbl is a hash table containing updated
rows that are thrown into the future direction of the index scan, so
that the scan knows it's seen these rows already and should skip them
subsequently.

When the TableScanResultSet.close() method was called, it was closing the
past2FutureTbl, but not clearing the pointer, which caused the lazy
initialization of the past2FutureTbl to be incorrectly performed the
next time the same TableScanResultSet was opened and scanned, resulting
in the NullPointerException in the underlying BackingStoreHashtable code
in that second scan.

The fix is to clear the old instance and freshly initialize a new instance,
each time the TableScanResultSet is closed and reopened.

> SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U
> ------------------------------------------------------------------
>
>                 Key: DERBY-6981
>                 URL: https://issues.apache.org/jira/browse/DERBY-6981
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.12.1.1
>         Environment: OSX,CentOS
>            Reporter: Roger Sanghee Kim
>            Priority: Major
>              Labels: newbie
>         Attachments: Main.java, Test1.zip, derby-test.java, patch1.diff, 
> test1.java
>
>
> Original error mesage:
>  
> {code:java}
> java.sql.SQLException: DERBY SQL error: ERRORCODE: 0, SQLSTATE: XJ001, 
> SQLERRMC: java.lang.NullPointerExceptionXJ001.U at 
> org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown 
> Source) at org.apache.derby.client.am.SqlException.getSQLException(Unknown 
> Source) at org.apache.derby.client.am.ClientResultSet.next(Unknown Source) at 
> org.ziptie.provider.credentials.internal.test1.main(test1.java:43) Caused by: 
> ERROR XJ001: DERBY SQL error: ERRORCODE: 0, SQLSTATE: XJ001, SQLERRMC: 
> java.lang.NullPointerExceptionXJ001.U at 
> org.apache.derby.client.am.ClientResultSet.completeSqlca(Unknown Source) at 
> org.apache.derby.client.net.NetResultSetReply.parseFetchError(Unknown Source) 
> at org.apache.derby.client.net.NetResultSetReply.parseCNTQRYreply(Unknown 
> Source) at org.apache.derby.client.net.NetResultSetReply.readFetch(Unknown 
> Source) at org.apache.derby.client.net.ResultSetReply.readFetch(Unknown 
> Source) at org.apache.derby.client.net.NetResultSet.readFetch_(Unknown 
> Source) at org.apache.derby.client.net.NetResultSet.flowFetch(Unknown Source) 
> at org.apache.derby.client.net.NetCursor.getMoreData_(Unknown Source) at 
> org.apache.derby.client.am.Cursor.stepNext(Unknown Source) at 
> org.apache.derby.client.am.Cursor.next(Unknown Source) at 
> org.apache.derby.client.am.ClientResultSet.nextX(Unknown Source)
> {code}
> DERBY-6735 is very similar bug.
> DDL
>  
> {code:java}
> CREATE TABLE TEST1
> (
> ID int PRIMARY KEY NOT NULL,
> LASTUPDATE timestamp
> ){code}
>  
> I have attached test Code:[^derby-test.java]
> test Code with embeded derby : [^Main.java]
> ^Full code on my intellij : [^Test1.zip]:^
> Another database (PostgreSQL) has no problem.
> I also put a workaround in the code.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to