[jira] Updated: (DERBY-3964) NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
