db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Pendleton (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4794) NPE at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.finishAndRTS
Date Wed, 08 Sep 2010 01:54:32 GMT

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

Bryan Pendleton commented on DERBY-4794:
----------------------------------------

It looks like the exception traces that you are posting are from a secondary exception.

That is, the statement that you are executing seems to be getting an exception
and trying to handle it:


    at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source) 


And then, during the attempt to handle that exception, you are getting a secondary
exception in BasicNoPutResultSetImpl.finishAndRTS()

>From a quick scan of the code, it looks like the only way you could get an NPE in
that method is if "activation" is NULL. There is at least one other place in the
BasicNoPutResultSetImpl.java code where it checks (activation != null), so it looks
like it is possible for activation to be NULL, and we should probably have a check
for that in finishAndRTS().

If you are experiencing these crashes regularly, you could try applying a patch
such as the following, and see whether it changes the behavior that you see at all.

Index: java/engine/org/apache/derby/impl/sql/execute/BasicNoPutResultSetImpl.java
===================================================================
--- java/engine/org/apache/derby/impl/sql/execute/BasicNoPutResultSetImpl.java	(revision 991055)
+++ java/engine/org/apache/derby/impl/sql/execute/BasicNoPutResultSetImpl.java	(working copy)
@@ -621,7 +621,7 @@
 
 			finished = true;
 
-			if (isTopResultSet && activation.isSingleExecution())
+			if (isTopResultSet && activation != null && activation.isSingleExecution())
 				activation.close();
 		}
 	}



> NPE at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.finishAndRTS 
> ------------------------------------------------------------------------------
>
>                 Key: DERBY-4794
>                 URL: https://issues.apache.org/jira/browse/DERBY-4794
>             Project: Derby
>          Issue Type: Bug
>          Components: Miscellaneous
>         Environment: Derby version info -- as seen in MANIFEST.MF
> Manifest-Version: 1.0
> Ant-Version: Apache Ant 1.6.5
> Created-By: 1.4.2_12-b03 (Sun Microsystems Inc.)
> Bundle-Vendor: Apache Software Foundation
> Bundle-Name: Apache Derby 10.3
> Bundle-Version: 10.3.1000004.561794
> Sealed: true
>            Reporter: Manoranjan Sahu
>
> Derby is throwing NPE randomly while executing simple sql statements. 
> Stack trace in derby.log
> Caused by: java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(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.executeQuery(Unknown Source)
> 	at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:726)
> 	at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:501)
> 	... 58 more
> Caused by: java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
Source)
> 	... 70 more
> Caused by: java.lang.NullPointerException
> 	at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.finishAndRTS(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.finish(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.BaseActivation.close(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericActivationHolder.execute(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
> 	... 63 more
> It is noticed that this issue is happening randomly , during selects and inserts. I did
not find any quick reproduction steps for it.

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