in general I prefer correctness over convenience ... so if we need a context 
listener to do everything right so should it be (remember having the same kind 
of trouble with jetty)

+0

Am 18.03.2011 um 17:50 schrieb Igor Vaynberg:

> another possible solution is to serialize the page into SerializedPage
> before sticking it into session...this may introduce some overhead,
> especially for non-clustered apps. however, we can have a special
> pagemanager for non-clustered apps that does not change page instances
> into SerializedPage...kind of like HttpSessionStore works in 1.4
> compared to a store that uses DiskPageStore.
> 
> -igor
> 
> 
> On Fri, Mar 18, 2011 at 9:35 AM, Martin Grigorov <mgrigo...@apache.org> wrote:
>> On Fri, Mar 18, 2011 at 5:04 PM, tetsuo <ronald.tet...@gmail.com> wrote:
>> 
>>> Well, I was trying to understand the problem before posting random thoghts
>>> :)
>>> 
>>> SegFault commented the issue with this question:
>>> 
>>>> " the only problem I see is that there is no one to clean the static
>>>> org.apache.wicket.page.PersistentPageManager.managers" <= maybe a stupid
>>> question,
>>>> but how does this behave in case of many context reloading (for example
>>> in developpement
>>>> mode), is this cleaned up by container ? or this will end up with a
>>> PermGen space error ?
>>> 
>>> I think that, unless you hold references to webapp-specific classes in
>>> server-loaded classes' static fields, or leave zombie threads, PermGen
>>> shouldn't occur, and all classes should be gc'ed. Does the page
>>> manager do anything that prevents it to be gc'ed? Does it need any
>>> extra clean-up, besides being unloaded with the webapp classloader?
>>> 
>>> The problem is that the web container first destroys WicketFilter and then
>> goes to serialize/persist the session.
>> Wicket puts Page instances in the session, but before serialization these
>> Page instances are transformed to SerializedPage which is a struct of
>>   int pageId;
>>   String sessionId;
>>   byte[] data;  // the page itself
>> 
>> and to be able to transform them Wicket needs the configured IPageManager.
>> With the destroy of WicketFilter all information is removed (null-ified)
>> including the PageManager and thus the serialization fails.
>> 
>> With the new ServletContextListener (SCL) we will move the application start
>> and stop from the Filter to SCL and solve this problem.
>> 
>> Additionally by Servlet specification the container may restart
>> servlets/filters at any time without completely stopping the application,
>> i.e. w/o
>> calling 
>> javax.servlet.ServletContextListener.contextDestroyed(ServletContextEvent).
>> So the new way will improve the current behavior.
>> 
>>> 
>>> 
>>> On Fri, Mar 18, 2011 at 12:42 PM, Igor Vaynberg <igor.vaynb...@gmail.com>
>>> wrote:
>>>> i would say that the lack of response shows that people dont care
>>>> about a couple more xml lines they have to add to web.xml once and
>>>> forget about.
>>>> 
>>>> -igor
>>>> 
>>>> On Fri, Mar 18, 2011 at 7:47 AM, Martin Grigorov <mgrigo...@apache.org>
>>> wrote:
>>>>> On Thu, Mar 17, 2011 at 10:54 PM, Martin Grigorov <mgrigo...@apache.org
>>>> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> To solve https://issues.apache.org/jira/browse/WICKET-3470 we need to
>>>>>> introduce ServletContextListener in Wicket.
>>>>>> In comment
>>>>>> 
>>> https://issues.apache.org/jira/browse/WICKET-3470?focusedCommentId=13008166&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13008166Idescribed
>>>  a proposal how we can change web.xml configuration to make it
>>>>>> working. The proposal is based on a discussion between me and Igor in
>>> IRC.
>>>>>> 
>>>>>> This is a rather big change and we need more opinions, so please share
>>> if
>>>>>> you have ideas.
>>>>>> 
>>>>> 
>>>>> By "big" here I mean conceptually, not code wise. Technically it doesn't
>>>>> seem to be big or complex.
>>>>> 
>>>>>> 
>>>>>> --martin-g
>>>>>> 
>>>>>> P.S. I'm interested to understand why there is no such problem with
>>> Wicket
>>>>>> 1.4?
>>>>>> I guess sessions in 1.4 are cleared earlier and never persisted between
>>> web
>>>>>> container restarts.
>>>>>> 
>>>>>> --
>>>>>> Martin Grigorov
>>>>>> jWeekend
>>>>>> Training, Consulting, Development
>>>>>> http://jWeekend.com <http://jweekend.com/>
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Martin Grigorov
>>>>> jWeekend
>>>>> Training, Consulting, Development
>>>>> http://jWeekend.com <http://jweekend.com/>
>>>>> 
>>>> 
>>> 
>> 
>> 
>> 
>> --
>> Martin Grigorov
>> jWeekend
>> Training, Consulting, Development
>> http://jWeekend.com <http://jweekend.com/>
>> 

Reply via email to