wbirkhead schrieb:
> Gerald Müllan-3 wrote:
>   
>>> I can see that in some cases it may help, perhaps you wanna share the
>>>       
>> impl ?
>>
>> I just removed the two lines with the weak references. So, only ugly
>> duplication of code. :)
>>
>>
>>     
>
> Gerald, at the risk of sounding like a novice, can you point me to the lines
> of code with the weak references that you mention above?  This would be a
> HUGE help.
>   

JspStateManagerImpl has this method:

        public synchronized void add(FacesContext context, Object state)
        {
            Object key = new SerializedViewKey(context);
            _serializedViews.put(key, state);

            while (_keys.remove(key));
            _keys.add(key);

            int views = getNumberOfViewsInSession(context);
            while (_keys.size() > views)
            {
                key = _keys.remove(0);
                Object oldView = _serializedViews.remove(key);
                if (oldView != null)
                {
                    getOldSerializedViewsMap().put(key, oldView);
                }
            }
        }

The second while loop is trimming the "strong-referenced" pool down to
the necessary size, and adding the removed entries into the weak pool.
So just commenting out the call to
                    getOldSerializedViewsMap().put(key, oldView);
should do the trick.

Regards,
Simon

Reply via email to