[jira] Updated: (DERBY-3964) NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action

2009-01-31 Thread Knut Anders Hatlen (JIRA)

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

Knut Anders Hatlen updated DERBY-3964:
--

   Derby Info:   (was: [Patch Available])
Affects Version/s: 10.5.0.0
Fix Version/s: 10.5.0.0

(Setting affects-version and fix-version to 10.5.0.0.)

Chip,

As I understand this bug, it only affects a new feature in 10.5 (generated 
columns), so I think you must be seeing something else. Just a guess, but it 
looks similar to DERBY-2353 (at least if you happen to run with 
derby.language.logQueryPlan=true). There should be a stack trace for the 
NullPointerException in derby.log which could give a clue.

> NullPointerException when re-evaluating generated column during ON DELETE SET 
> NULL referential action
> -
>
> Key: DERBY-3964
> URL: https://issues.apache.org/jira/browse/DERBY-3964
> Project: Derby
>  Issue Type: Bug
>  Components: SQL
>Affects Versions: 10.5.0.0
>Reporter: Dag H. Wanvik
>Assignee: Rick Hillegas
> Fix For: 10.5.0.0
>
> Attachments: derby-3964-01-aa-onDeleteSetNull.diff, 
> RegenerateAfterOnDeleteSetNullError.java
>
>
> Cf repro RegenerateAfterOnDeleteSetNullError.java enclosed.
> 1) 
> test_1(org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError)java.sql.SQLException:
>  The exception 'java.lang.NullPointerException' was thrown while evaluating 
> an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
>   at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2201)
>   at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1323)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:175)
>   at 
> org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError.test_1(RegenerateAfterOnDeleteSetNullError.java:60)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:105)
>   at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>   at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>   at junit.extensions.TestSetup.run(TestSetup.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: java.sql.SQLException: The exception 
> 'java.lang.NullPointerException' was thrown while evaluating an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   ... 31 more
> Caused by: java.sql.SQLException: Java exception: ': 
> java.lang.NullPointerException'.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
>   ... 29 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.derby.impl.sql.execute.BaseActivation.getColumnFromRow(BaseActivation.java:1451)
>   at 
> org.apache.derby.exe.ac30fbc0bbx011dxd4a8x4baexd28a99d54.e5(Unknown 
> Source)
>   at 
> org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:149)

[jira] Updated: (DERBY-3964) NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action

2008-12-02 Thread Rick Hillegas (JIRA)

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

Rick Hillegas updated DERBY-3964:
-

Derby Info: [Patch Available]

> NullPointerException when re-evaluating generated column during ON DELETE SET 
> NULL referential action
> -
>
> Key: DERBY-3964
> URL: https://issues.apache.org/jira/browse/DERBY-3964
> Project: Derby
>  Issue Type: Bug
>  Components: SQL
>Reporter: Dag H. Wanvik
>Assignee: Rick Hillegas
> Attachments: derby-3964-01-aa-onDeleteSetNull.diff, 
> RegenerateAfterOnDeleteSetNullError.java
>
>
> Cf repro RegenerateAfterOnDeleteSetNullError.java enclosed.
> 1) 
> test_1(org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError)java.sql.SQLException:
>  The exception 'java.lang.NullPointerException' was thrown while evaluating 
> an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
>   at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2201)
>   at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1323)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:175)
>   at 
> org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError.test_1(RegenerateAfterOnDeleteSetNullError.java:60)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:105)
>   at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>   at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>   at junit.extensions.TestSetup.run(TestSetup.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: java.sql.SQLException: The exception 
> 'java.lang.NullPointerException' was thrown while evaluating an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   ... 31 more
> Caused by: java.sql.SQLException: Java exception: ': 
> java.lang.NullPointerException'.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
>   ... 29 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.derby.impl.sql.execute.BaseActivation.getColumnFromRow(BaseActivation.java:1451)
>   at 
> org.apache.derby.exe.ac30fbc0bbx011dxd4a8x4baexd28a99d54.e5(Unknown 
> Source)
>   at 
> org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:149)
>   at 
> org.apache.derby.impl.sql.execute.NoRowsResultSetImpl.evaluateGenerationClauses(NoRowsResultSetImpl.java:623)
>   at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(UpdateResultSet.java:451)
>   at 
> org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.collectAffectedRows(DeleteCascadeResultSet.java:195)
>   at 
> org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(DeleteCascadeResultSet.java:120)
>   at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.jav

[jira] Updated: (DERBY-3964) NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action

2008-12-02 Thread Rick Hillegas (JIRA)

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

Rick Hillegas updated DERBY-3964:
-

Attachment: derby-3964-01-aa-onDeleteSetNull.diff

Attaching derby-3964-01-aa-onDeleteSetNull.diff. This patch fixes the NPE 
triggered when a primary key deletion cascades changes to a foreign key table. 
Tests are running.

Here's what was going on:

o The cascaded change translated into an UPDATE on the foreign key table.

o During the cascaded change, generation clauses were being evaluated on the 
pre-images of columns as well as on the after images in the UPDATE row.

o The pre-image referred to a ResultSet whose row was not available at 
execution time.

o That triggered the NPE.

The fix was to eliminate the useless evaluation of the generation clause on the 
pre-image of the column.


Touches the following files:

M  java/engine/org/apache/derby/impl/sql/compile/DMLModStatementNode.java

The code-generation of generation clauses is changed to only build code for 
after images. This involves adding an argument to generateGenerationClauses(), 
flagging whether the statement is an UPDATE.


M  java/engine/org/apache/derby/impl/sql/compile/UpdateNode.java
M  java/engine/org/apache/derby/impl/sql/compile/InsertNode.java

Adds the extra argument to the callers of generateGenerationClauses.


M  
java/testing/org/apache/derbyTesting/functionTests/tests/lang/GeneratedColumnsTest.java

Adds a test case.

> NullPointerException when re-evaluating generated column during ON DELETE SET 
> NULL referential action
> -
>
> Key: DERBY-3964
> URL: https://issues.apache.org/jira/browse/DERBY-3964
> Project: Derby
>  Issue Type: Bug
>  Components: SQL
>Reporter: Dag H. Wanvik
>Assignee: Rick Hillegas
> Attachments: derby-3964-01-aa-onDeleteSetNull.diff, 
> RegenerateAfterOnDeleteSetNullError.java
>
>
> Cf repro RegenerateAfterOnDeleteSetNullError.java enclosed.
> 1) 
> test_1(org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError)java.sql.SQLException:
>  The exception 'java.lang.NullPointerException' was thrown while evaluating 
> an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
>   at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2201)
>   at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1323)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:175)
>   at 
> org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError.test_1(RegenerateAfterOnDeleteSetNullError.java:60)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:105)
>   at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>   at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>   at junit.extensions.TestSetup.run(TestSetup.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: java.sql.SQLException: The exception 
> 'java.lang.NullPointerException' was thrown while evaluating an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   ... 31 more
> Caused by: java.sql.SQLException: Java exception: ': 
> java.lang.NullPointerException'.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   a

[jira] Updated: (DERBY-3964) NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action

2008-11-25 Thread Dag H. Wanvik (JIRA)

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

Dag H. Wanvik updated DERBY-3964:
-

Attachment: (was: RegenerateAfterOnDeleteSetNullError.java)

> NullPointerException when re-evaluating generated column during ON DELETE SET 
> NULL referential action
> -
>
> Key: DERBY-3964
> URL: https://issues.apache.org/jira/browse/DERBY-3964
> Project: Derby
>  Issue Type: Bug
>  Components: SQL
>Reporter: Dag H. Wanvik
> Attachments: RegenerateAfterOnDeleteSetNullError.java
>
>
> Cf repro RegenerateAfterOnDeleteSetNullError.java enclosed.
> 1) 
> test_1(org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError)java.sql.SQLException:
>  The exception 'java.lang.NullPointerException' was thrown while evaluating 
> an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
>   at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2201)
>   at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1323)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:175)
>   at 
> org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError.test_1(RegenerateAfterOnDeleteSetNullError.java:60)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:105)
>   at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>   at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>   at junit.extensions.TestSetup.run(TestSetup.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: java.sql.SQLException: The exception 
> 'java.lang.NullPointerException' was thrown while evaluating an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   ... 31 more
> Caused by: java.sql.SQLException: Java exception: ': 
> java.lang.NullPointerException'.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
>   ... 29 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.derby.impl.sql.execute.BaseActivation.getColumnFromRow(BaseActivation.java:1451)
>   at 
> org.apache.derby.exe.ac30fbc0bbx011dxd4a8x4baexd28a99d54.e5(Unknown 
> Source)
>   at 
> org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:149)
>   at 
> org.apache.derby.impl.sql.execute.NoRowsResultSetImpl.evaluateGenerationClauses(NoRowsResultSetImpl.java:623)
>   at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(UpdateResultSet.java:451)
>   at 
> org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.collectAffectedRows(DeleteCascadeResultSet.java:195)
>   at 
> org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(DeleteCascadeResultSet.java:120)
>   at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:416)
>   at 
> org.apache.derby.impl.sq

[jira] Updated: (DERBY-3964) NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action

2008-11-25 Thread Dag H. Wanvik (JIRA)

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

Dag H. Wanvik updated DERBY-3964:
-

Attachment: RegenerateAfterOnDeleteSetNullError.java

> NullPointerException when re-evaluating generated column during ON DELETE SET 
> NULL referential action
> -
>
> Key: DERBY-3964
> URL: https://issues.apache.org/jira/browse/DERBY-3964
> Project: Derby
>  Issue Type: Bug
>  Components: SQL
>Reporter: Dag H. Wanvik
> Attachments: RegenerateAfterOnDeleteSetNullError.java, 
> RegenerateAfterOnDeleteSetNullError.java
>
>
> Cf repro RegenerateAfterOnDeleteSetNullError.java enclosed.
> 1) 
> test_1(org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError)java.sql.SQLException:
>  The exception 'java.lang.NullPointerException' was thrown while evaluating 
> an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
>   at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2201)
>   at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1323)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:175)
>   at 
> org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError.test_1(RegenerateAfterOnDeleteSetNullError.java:60)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:105)
>   at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>   at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>   at junit.extensions.TestSetup.run(TestSetup.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: java.sql.SQLException: The exception 
> 'java.lang.NullPointerException' was thrown while evaluating an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   ... 31 more
> Caused by: java.sql.SQLException: Java exception: ': 
> java.lang.NullPointerException'.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
>   ... 29 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.derby.impl.sql.execute.BaseActivation.getColumnFromRow(BaseActivation.java:1451)
>   at 
> org.apache.derby.exe.ac30fbc0bbx011dxd4a8x4baexd28a99d54.e5(Unknown 
> Source)
>   at 
> org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:149)
>   at 
> org.apache.derby.impl.sql.execute.NoRowsResultSetImpl.evaluateGenerationClauses(NoRowsResultSetImpl.java:623)
>   at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(UpdateResultSet.java:451)
>   at 
> org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.collectAffectedRows(DeleteCascadeResultSet.java:195)
>   at 
> org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(DeleteCascadeResultSet.java:120)
>   at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:416)
>   

[jira] Updated: (DERBY-3964) NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action

2008-11-25 Thread Dag H. Wanvik (JIRA)

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

Dag H. Wanvik updated DERBY-3964:
-

Attachment: RegenerateAfterOnDeleteSetNullError.java

> NullPointerException when re-evaluating generated column during ON DELETE SET 
> NULL referential action
> -
>
> Key: DERBY-3964
> URL: https://issues.apache.org/jira/browse/DERBY-3964
> Project: Derby
>  Issue Type: Bug
>  Components: SQL
>Reporter: Dag H. Wanvik
> Attachments: RegenerateAfterOnDeleteSetNullError.java
>
>
> Cf repro RegenerateAfterOnDeleteSetNullError.java enclosed.
> 1) 
> test_1(org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError)java.sql.SQLException:
>  The exception 'java.lang.NullPointerException' was thrown while evaluating 
> an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
>   at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2201)
>   at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1323)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
>   at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:175)
>   at 
> org.apache.derbyTesting.functionTests.tests.lang.RegenerateAfterOnDeleteSetNullError.test_1(RegenerateAfterOnDeleteSetNullError.java:60)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:105)
>   at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>   at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>   at junit.extensions.TestSetup.run(TestSetup.java:25)
>   at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: java.sql.SQLException: The exception 
> 'java.lang.NullPointerException' was thrown while evaluating an expression.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   ... 31 more
> Caused by: java.sql.SQLException: Java exception: ': 
> java.lang.NullPointerException'.
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
>   at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>   at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
>   ... 29 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.derby.impl.sql.execute.BaseActivation.getColumnFromRow(BaseActivation.java:1451)
>   at 
> org.apache.derby.exe.ac30fbc0bbx011dxd4a8x4baexd28a99d54.e5(Unknown 
> Source)
>   at 
> org.apache.derby.impl.services.reflect.DirectCall.invoke(ReflectGeneratedClass.java:149)
>   at 
> org.apache.derby.impl.sql.execute.NoRowsResultSetImpl.evaluateGenerationClauses(NoRowsResultSetImpl.java:623)
>   at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(UpdateResultSet.java:451)
>   at 
> org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.collectAffectedRows(DeleteCascadeResultSet.java:195)
>   at 
> org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(DeleteCascadeResultSet.java:120)
>   at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:416)
>   at 
> org.apache.derby.impl.sql.GenericPr