db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Whitt" <j.wh...@insightbb.com>
Subject Re: java.lang.NullPointerException. [XJ001] on update
Date Sat, 28 Jun 2008 17:14:55 GMT
unsubscribe

----- Original Message ----- 
From: "Mamta Satoor" <msatoor@gmail.com>
To: "Derby Discussion" <derby-user@db.apache.org>
Sent: Saturday, June 28, 2008 10:57 AM
Subject: Re: java.lang.NullPointerException. [XJ001] on update


> Alan, you might be running into DERBY-3718 which I fixed in the
> current trunk and 10.4 codelines but it has not made into next
> official release of 10.4 yet.
>
> Mamta
>
> On 6/28/08, Alan Burlison <Alan.Burlison@sun.com> wrote:
>> Alan Burlison wrote:
>>
>> >
>> > > Bug, or pilot error?
>> > >
>> >
>> > A bit of both I suspect - I was updating the table twice without a 
>> > commit
>> in between.  Adding a commit seems to have solved it.
>> >
>>
>> Spoke too soon, it's baaaaaaack!  Looks a bit like
>> http://issues.apache.org/jira/browse/DERBY-388, albeit with
>> a different stack trace.
>>
>> I've recoded the update logic to remove the triggers and perform the
>> processing the triggers did in my program, and the problem goes away. 
>> Here's
>> the scenario:
>>
>> create table member (
>>    member_id   integer     not null generated by default as identity,
>>    member_name varchar(32) not null,
>>    real_name   varchar(50) not null,
>>    email       varchar(50) not null,
>>    :
>>    lc_member_name varchar(20),
>>    lc_real_name   varchar(50),
>>    lc_email       varchar(50),
>>    :
>> );
>>
>> create trigger m__mn__it after insert on member
>>    for each row update member set lc_member_name = lower(member_name);
>> create trigger m__mn__ut after update of member_name on member
>>    for each row update member set lc_member_name = lower(member_name);
>> create trigger m__rn__it after insert on member
>>    for each row update member set lc_real_name = lower(real_name);
>> create trigger m__rn__ut after update of real_name on member
>>    for each row update member set lc_real_name = lower(real_name);
>> create trigger m__e__it after insert on member
>>    for each row update member set lc_email = lower(email);
>> create trigger m__e__ut after update of email on member
>>    for each row update member set lc_email = lower(email);
>>
>> I haven't had time to create a cut-down test case, but from the stack 
>> trace
>> I sent earlier it looks to be related to the use of triggers, and the 
>> fact
>> that the problem goes away when I remove the triggers and do the 
>> processing
>> 'by hand' seems to confirm that.
>>
>> --
>> Alan Burlison
>> --
>> 


Mime
View raw message