You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Bernd Ruehlicke (JIRA)" <ji...@apache.org> on 2016/09/28 19:02:20 UTC

[jira] [Updated] (DERBY-6726) NPE from trigger

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

Bernd Ruehlicke updated DERBY-6726:
-----------------------------------
    Attachment: derbytrig.zip

NetBeans 8.2RC project with a single JUnit test showing this error when using 10.8.1.2.  Replacing the jars with 10.7.1.1 will make the code working. Using any version higher than 10.8 will also fail.

> 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
>         Attachments: derbytrig.zip
>
>
> 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/%3Cltq5hl$kps$1@ger.gmane.org%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)