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-6726) NPE from trigger
Date Sat, 01 Oct 2016 17:58:20 GMT

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

Bryan Pendleton commented on DERBY-6726:
----------------------------------------

Thank you for the code review Bernd, and thanks once again for all the help on
tracking this down. It seems that we've had this issue for a while, and it's nice to
feel like we may have addressed it.

Please do let us know of your further experiences running with this fix in your environment.

I've left the issue open for now, because I intend to back-port it to (at least) the
10.12 and 10.13 branches. We could certainly back-port it all the way back to the 10.8
branch, but I'm not planning to do that at this time.

> 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
>            Assignee: Bryan Pendleton
>         Attachments: TriggerTest.diff, derbytrig.zip, fixesRepro.diff, getTableDescriptor.diff
>
>
> 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)

Mime
View raw message