Re: Heisenbug-ish NullPointerExceptions in DataContext.flushToParent()

Hugi Thordarson <[email protected]>
Newsgroups gmane.comp.java.cayenne.user
Message-ID <[email protected]>
> On 7 May 2021, at 13:34, John Huss <[email protected]> wrote:
> 
> On Fri, May 7, 2021 at 8:18 AM Hugi Thordarson <[email protected]> wrote:
> 
>> Well I'll be… Over two decades of full time Java and I somehow didn't know
>> about that stack trace omission. Yikes. Thanks!
> 
> You’ve just never caused an error that bad before right? 😉

*cough* yes. Of course, that must be it 😁

>> ....
>> So it seems either 'snapshot' or 'objAttribute' is null, probably the
>> snapshot, right? Any ideas why that might be?
>> 
> 
> Yeah, it would be the snapshot is null. The snapshot cache is limited in
> size, so it may have purged that entry if you have a busy server. You could
> try increasing the size of the snapshot cache:
> 
> org.apache.cayenne.configuration.Constants.SNAPSHOT_CACHE_SIZE_PROPERTY

Good thinking, but I've already got a ginormous snapshot cache (3.000.000) for the traffic, so I don't think that's it.
Going to hammer away on this code path a bit and see if I can replicate the error.


>> 
>> - hugi
>> 
>> 
>> 
>>> On 7 May 2021, at 12:53, John Huss <[email protected]> wrote:
>>> 
>>> Or if you have older logs, you can look back farther to find one without
>>> the cause omitted.
>>> 
>>> On Fri, May 7, 2021 at 7:52 AM John Huss <[email protected]> wrote:
>>> 
>>>> It will omit the trace if it has happened a very large number of times.
>> If
>>>> you restart the server it will start printing it again when it happens.
>>>> 
>>>> On Fri, May 7, 2021 at 7:26 AM Hugi Thordarson <[email protected]>
>> wrote:
>>>> 
>>>>> One would think so, but there's just no stack trace printed for the
>>>>> NullPointerException.
>>>>> 
>>>>> 
>>>>>> On 7 May 2021, at 12:24, John Huss <[email protected]> wrote:
>>>>>> 
>>>>>> The first line of the stack after the Caused By line would tell you
>> the
>>>>>> line with the problem, wouldn't it? What was that line?
>>>>>> 
>>>>>> On Fri, May 7, 2021 at 7:16 AM Hugi Thordarson <[email protected]>
>>>>> wrote:
>>>>>> 
>>>>>>> Hi all,
>>>>>>> 
>>>>>>> occasionally my users encounter errors when committing changes to the
>>>>> DB.
>>>>>>> The relevant part of the stack trace looks like this:
>>>>>>> 
>>>>>>> ---------
>>>>>>> org.apache.cayenne.CayenneRuntimeException: [v.4.1 Jul 14 2020
>>>>> 10:26:08]
>>>>>>> Commit Exception
>>>>>>>      at
>>>>>>> 
>>>>> 
>> org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:774)
>>>>>>>      at
>>>>>>> 
>>>>> 
>> org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:691)
>>>>>>>      [...removed rest of trace…]
>>>>>>> Caused by: java.lang.NullPointerException
>>>>>>> ---------
>>>>>>> 
>>>>>>> Unfortunately I've been unable to reproduce this error, so before I
>>>>> dive
>>>>>>> into it I'm wondering if this looks familiar to anyone, if there are
>>>>>>> obvious places to look or if there are recommendations for strategies
>>>>> to
>>>>>>> debug?
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> - hugi
>>>>> 
>>>>> 
>> 
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.