Rethinking this a bit… If it turns out that the snapshot has actually been 
evacuated from cache, how should I obtain an instance of the snapshot? And 
isn't it a bit odd that a snapshot has been evacuated for an object that's 
about to be updated or is that to be expected?

Cheers,
- hugi



> On 7 May 2021, at 19:55, Hugi Thordarson <h...@karlmenn.is> wrote:
> 
>> On 7 May 2021, at 13:34, John Huss <johnth...@gmail.com> wrote:
>> 
>> On Fri, May 7, 2021 at 8:18 AM Hugi Thordarson <h...@karlmenn.is> 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 <johnth...@gmail.com> 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 <johnth...@gmail.com> 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 <h...@karlmenn.is>
>>> 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 <johnth...@gmail.com> 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 <h...@karlmenn.is>
>>>>>> 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
>>>>>> 
>>>>>> 
>>> 
>>> 
> 

Reply via email to