Another interesting tidbit: The exception seems to always occur when the PageSource pool contains no instance of this page.
I'm going to look at the code in more detail now. -Jason On Thursday, September 19, 2002, at 04:29 AM, Howard M. Lewis Ship wrote: > I was just going through that code ... > > ----- Original Message ----- > From: "Jason Owens" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, September 18, 2002 6:07 PM > Subject: Re: [Tapestry-developer] attach() not called > > >> Just found out some more interesting info: >> >> attach() *is* being called on the page, but it seems a component >> within >> the page is accessing a *different* instance of the same page (one >> that >> hasn't been initialized with an engine). The only connection between >> the >> page and component is the "model" parameter, which is specified as >> direction="in" and required="yes". Does Tapestry randomly grab >> components >> from the pool as well as pages, and then put them together for a >> render? > > Does your "model" instance contain a reference to a page? If it is > persistant (meaning it has a different lifecycle than the page it is > on), it > should not. Remember that persistent page state is *seperate* from > page > instances. > > Sounds like page instance B (attached to the engine) has a reference > (inside > the model) to page instance A (which is still in the pool and in a > detached > state). > > You are going to have to rig things so that the model stores the > *name* of > the page, and resolves it from the request cycle. Alternately, you can > leverage some event notifications to set the page property of the > model as > needed. > >> If this is so, then the component/page relationship isn't being >> properly >> set. >> I'll try to look at the Tapestry code later tonight to see what I >> find, >> right now I've got plenty of other bugs to fix... (This does manifest >> more >> often when more than one person is using the app.) >> -Jason >> >> >>> I'll have to check into the PageLoader. I know I moved >>> some stuff around, so that the engine property would be >>> set by the time that finishLoad() was invoked on a page, >>> or any component of the page. I must have screwed >>> something up there. Strangely, I do run Tapestry with >>> caching enabled but I haven't seen this! >>> >>> -- >>> [EMAIL PROTECTED] >>> >>> http://tapestry.sf.net >>>> Hello all, >>>> >>>> I'm using 2.2b2, and seeing a very annoying effect: >>>> >>>> I visit a page, leave it for a while (visit some other pages, >>>> wait...), and then come back and get a NullPointerException. This >>>> isn't my error (though I may be causing it), since it's a null >>>> ENGINE! >>>> In fact, I've subclassed BasePage and overridden attach(), in order >>>> to >>>> determine what's going on, and it was never called. So in effect, >>>> I'm >>>> operating on a page that hasn't been attached. How can this be? Has >>>> anyone else seen this phenomenon? >>>> Any pointers would be appreciated... >>>> >>>> -Jason >>>> >>>> >>>> >>>> >>>> ------------------------------------------------------- >>>> This SF.NET email is sponsored by: AMD - Your access to the experts >>>> on >>>> Hammer Technology! Open Source & Linux Developers, register now for >>>> the AMD Developer Symposium. Code: EX8664 >>>> http://www.developwithamd.com/developerlab >>>> _______________________________________________ >>>> Tapestry-developer mailing list >>>> [EMAIL PROTECTED] >>>> https://lists.sourceforge.net/lists/listinfo/tapestry-developer >>> >>> >>> ------------------------------------------------------- >>> This SF.NET email is sponsored by: AMD - Your access to the experts >>> on >>> Hammer Technology! Open Source & Linux Developers, register now for >>> the >>> AMD Developer Symposium. Code: EX8664 >>> http://www.developwithamd.com/developerlab >>> _______________________________________________ >>> Tapestry-developer mailing list >>> [EMAIL PROTECTED] >>> https://lists.sourceforge.net/lists/listinfo/tapestry-developer >> >> >> >> >> >> ------------------------------------------------------- >> This SF.NET email is sponsored by: AMD - Your access to the experts >> on Hammer Technology! Open Source & Linux Developers, register now >> for the AMD Developer Symposium. Code: EX8664 >> http://www.developwithamd.com/developerlab >> _______________________________________________ >> Tapestry-developer mailing list >> [EMAIL PROTECTED] >> https://lists.sourceforge.net/lists/listinfo/tapestry-developer >> > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Tapestry-developer mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/tapestry-developer > ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Tapestry-developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/tapestry-developer
