Tim Dudgeon created DERBY-6726:
----------------------------------
Summary: NPE from trigger
Key: DERBY-6726
URL: https://issues.apache.org/jira/browse/DERBY-6726
Project: Derby
Issue Type: Bug
Components: SQL
Affects Versions: 10.10.1.1
Reporter: Tim Dudgeon
Saw this strange exception when doing an insert to a table with a trigger
{code}
Tue Sep 02 13:39:09 BST 2014 Thread[SQLExecution,1,system] (XID = 62693),
(SESSIONID = 1), (DATABASE =
C:/Users/timbo/Documents/IJCProjects/mini-regs/Vanilla
Oracle/.config/derby-minireg-01-sep/db), (DRDAID = null), Failed Statement is:
UPDATE samples SET sample_code = 'S123456' WHERE sample_id = CAST
(org.apache.derby.iapi.db.Factory::getTriggerExecutionContext().getNewRow().getObject(1)
AS INTEGER)
java.lang.NullPointerException
at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getTriggerActionString(Unknown
Source)
at
org.apache.derby.iapi.sql.dictionary.TriggerDescriptor.getActionSPS(Unknown
Source)
at
org.apache.derby.impl.sql.execute.GenericTriggerExecutor.getAction(Unknown
Source)
at org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger(Unknown
Source)
at
org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(Unknown
Source)
at
org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTriggers(Unknown
Source)
at org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown Source)
at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown
Source)
at
org.apache.derby.impl.sql.GenericPreparedStatement.executeSubStatement(Unknown
Source)
at
org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(Unknown
Source)
at org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger(Unknown
Source)
at
org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(Unknown
Source)
at
org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown
Source)
at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source)
at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(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.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
{code}
The trigger definition is this:
{code}
CREATE TRIGGER samples_code_trg
AFTER INSERT ON samples
REFERENCING NEW AS newrow FOR EACH ROW MODE DB2SQL
UPDATE samples SET sample_code = 'S123456'
WHERE samples.sample_id = newrow.sample_id;
{code}
As mentioned here:
http://mail-archives.apache.org/mod_mbox/db-derby-user/201408.mbox/%[email protected]%3E
it could be that its caused by another AFTER UPDATE trigger that's on the table.
Unfortunately I rebuilt all the tables and triggers and not the problem doesn't
happen, so I can't provide a test case.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)