db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bernd Ruehlicke (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-6726) NPE from trigger
Date Wed, 28 Sep 2016 19:02:20 GMT

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

Bernd Ruehlicke commented on DERBY-6726:
----------------------------------------

I was able to crystallize out the code causing the error in a JUNIT 4 test. Attached a NetBeans
8.2RC project with all setup causing the error. The README.txt file also tells how to make
the error go away, i.e. which lines in the code causing it.

I hope this will help to find the problem. The code was tested with JDK 1.8.0_102 64 bit.

> 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)

Mime
View raw message