I have managed to crystallize out the error into a standalone JUnit 4 test
and uploaded a NetBeans project with this to JIRA under DERBY-6726. Hope
this will allow us to hunt down the issue which really was introduced with
10.8.

On Tue, Sep 27, 2016 at 9:18 PM, bruehlicke <bruehli...@gmail.com> wrote:

> Thanx I will see if I can narrow it down.  I do rebuild the entire sets of
> Tables and triggers and hence I would be able to make this reproducable. I
> will work on making a small test app and see if I can make it fail. The
> interesting bit is that the UPDATE works if I paste the SQL statement
> directly into the SQL editor in NetBeans - even with the trigger (!) using
> the jars after 10.8. Mysterious.
>
>
> The table involved CURVE_NUMBER and the TRIGGER on those are created as
> following when the project starts. (see below).
>
> Just tested:  If I do NOT create the Trigger (shown below) on the Table -
> all works fine in 10.12.1.1. So it is for sure related to the Update
> Trigger.
>
>
>
>             s.execute("CREATE TABLE CURVE_DATA_NUMBER (" +
>                     "CURVE_ID BIGINT NOT NULL,"
> +
>                     "SEQ_NUM BIGINT NOT NULL," +
>                     "MDEPTH DOUBLE," +
>
>                     "CVALUE DOUBLE DEFAULT -999.25"
> +
>                     ")");
>
>             s.execute("ALTER TABLE CURVE_DATA_NUMBER ADD CONSTRAINT
> CURVE_DATA_NUMBER_CURVE_ID_FK FOREIGN KEY (CURVE_ID) REFERENCES CURVE (ID)
> ON DELETE CASCADE");
>             s.execute("ALTER TABLE CURVE_DATA_NUMBER ADD CONSTRAINT
> CURVE_DATA_NUMBER_UN UNIQUE (CURVE_ID, SEQ_NUM)");
>             // Create Database Index to speed up - we do NOT need an Index
> on the CURVE_ID since it already gets one being a Foreign Key
>             s.execute("CREATE INDEX CURVE_DATA_NUMBER_SEQ_NUM_INDEX on
> CURVE_DATA_NUMBER (SEQ_NUM)");
>             // Add trigger to update CURVE in case curve data is modyfied
> which may impact top/bottom attributes
>             s.execute("CREATE TRIGGER CURVE_DATA_NUMBER_TRIG_UP AFTER
> UPDATE OF CURVE_ID, SEQ_NUM, MDEPTH, CVALUE " +
>                     "ON CURVE_DATA_NUMBER REFERENCING OLD AS UPDATEDROW
> FOR EACH ROW UPDATE CURVE SET " +
>                     "TOP_DEPTH=(SELECT MIN(MDEPTH) FROM CURVE_DATA_NUMBER
> WHERE CURVE_ID=UPDATEDROW.CURVE_ID AND MDEPTH<>-999.25)," +
>                     "BOTTOM_DEPTH=(SELECT MAX(MDEPTH) FROM
> CURVE_DATA_NUMBER WHERE CURVE_ID=UPDATEDROW.CURVE_ID AND MDEPTH<>-999.25),"
> +
>                     "MINCVAL=(SELECT MIN(CVALUE) FROM CURVE_DATA_NUMBER
> WHERE CURVE_ID=UPDATEDROW.CURVE_ID AND CVALUE<>-999.25)," +
>                     "MAXCVAL=(SELECT MAX(CVALUE) FROM CURVE_DATA_NUMBER
> WHERE CURVE_ID=UPDATEDROW.CURVE_ID AND CVALUE<>-999.25) " +
>                     "WHERE ID=UPDATEDROW.CURVE_ID");
>
>
>
>
>
>
> On Tue, Sep 27, 2016 at 8:47 PM, Bryan Pendleton <
> bpendleton.de...@gmail.com> wrote:
>
>> 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)
>>>
>>
>> This definitely looks like it could be DERBY-6726
>>
>>         https://issues.apache.org/jira/browse/DERBY-6726
>>
>> From the notes in that bug report we were unable to reproduce
>> the problem, and the original reporter noted that
>>
>>          I rebuilt all the tables and triggers and now the problem
>> doesn't happen
>>
>> It would sure be nice to fix this problem, but if we can't reproduce
>> it we may need a lot of help from you to try to fix it.
>>
>> Alternatively, if you have a way to backup your tables, and then drop
>> and re-load your data, it seems like the problem may go away?
>>
>> The fact that you seemed to be able to narrow down the introduction
>> of this problem to Derby 10.8 makes me wonder if DERBY-5121 is related?
>>
>> At the least, it would be nice if you could put some comments into
>> DERBY-6726
>> and include as much information as you can about the particulars of your
>> situation.
>>
>> thanks,
>>
>> bryan
>>
>>
>

Reply via email to