added a log warning to property models when they reference session.

-igor

On Tue, Nov 16, 2010 at 9:46 AM, Douglas Ferguson
<[email protected]> wrote:
> We found it.. Finally!!!
>
> There was a property model that was using the session as the model object.
>
> It would be cool if PropertyModel, etc would check for this and blow up on 
> construction.
> i.e. not allow Page, Session, Application as the model object...
>
> D/
> On Nov 16, 2010, at 11:20 AM, Douglas Ferguson wrote:
>
>> Just tested on 1.4.13 and it still happens
>>
>> On Nov 16, 2010, at 9:43 AM, Douglas Ferguson wrote:
>>
>>> 1.4.12, but the problem has been around since a few versions back.
>>>
>>> D/
>>>
>>> On Nov 16, 2010, at 12:43 AM, Martijn Dashorst wrote:
>>>
>>>> Are you using 1.4.13?
>>>>
>>>> Martijn
>>>>
>>>> On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson
>>>> <[email protected]> wrote:
>>>>> Some time ago I posted to the list regarding a stack overflow error that 
>>>>> I was receiving and the advice was to make sure that I didn't have a page 
>>>>> storing a reference to another page.
>>>>> We did track this down and have just had to ignore it in the production 
>>>>> logs.  Now we've made it a priority to track this down.
>>>>>
>>>>> Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
>>>>> feature. We are able to recreate the bug by pasting a url into a new 
>>>>> browser window and thus generating a new pagemap. On a certain page the 
>>>>> memory consumption doubles as you generate new pagemaps (see the chart 
>>>>> below). The profile is indicating that the memory is being taken up by a 
>>>>> hashmap, but that's as far as we've been able to trace it so far.
>>>>>
>>>>>> PageMap #    Size    Growth
>>>>>> 13    389523448    1.93
>>>>>> 12    202059096    1.93
>>>>>> 11    104804096    1.93
>>>>>> 10    54352280    1.93
>>>>>> 9    28182760    1.93
>>>>>> 8    14594976    1.93
>>>>>> 7    7549336    1.94
>>>>>> 6    3900704    1.94
>>>>>> 5    2013480    2
>>>>>> 4    1006960    2
>>>>>> 3    503696    2
>>>>>> 2    252072    1.86
>>>>>> 1    135704
>>>>>
>>>>>
>>>>> Any thoughts or tips on trying to get to the bottom of this one?
>>>>>
>>>>> Here's the stack trace
>>>>>
>>>>>>     at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
>>>>>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>>>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>>>>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>>>>>     at java.util.LinkedList.writeObject(Unknown Source)
>>>>>>     at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
>>>>>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>>>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>>>>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
>>>>>>     at org.apache.wicket.Component.writeObject(Component.java:4660)
>>>>>>     at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
>>>>>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>>>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>>>>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>     at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>>>>>     at 
>>>>>> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121)
>>>>>>     at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>>>>>     at 
>>>>>> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1124)
>>>>>>     at 
>>>>>> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203)
>>>>>>     at 
>>>>>> org.apache.wicket.protocol.http.pagestore.DiskPageStore.prepareForSerialization(DiskPageStore.java:1190)
>>>>>>     at 
>>>>>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:389)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Become a Wicket expert, learn from the best: http://wicketinaction.com
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to