You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Glen Stampoultzis <gs...@iinet.net.au> on 2003/11/18 06:05:36 UTC
Re: Getting access to the visit from within the Taco's tree
model.
I traced through this pretty carefully. What is actually happening is that
the model is holding a reference to an old instance of the page (because
it's an inner class) that is no longer part of the current cycle.
The _engine variable gets set and cleared on the attach and detach so old
instances will no longer have any way to refer back to the engine.
-- Glen
At 03:43 PM 18/11/2003, you wrote:
>That doesn't sound right, may be there is another problem, 'cause the
>engine should be attached to the page as soon as it is instantiated or
>retrieved from the pool. The rewind/render happens after the page is loaded.
>
>-Harish
>
>Glen Stampoultzis wrote:
>>Yes. I thought of that one. Unfortunately is appears that calling
>>getPage() at that point in the render will return a page object that
>>hasn't had the _engine attached which causes an error during the call to
>>getVisit().
>>Regards,
>>Glen
>>
>>At 02:38 PM 18/11/2003, you wrote:
>>
>>>How are you specifying the model for your tree? Can you define it as a
>>>nested or anonymous class from within your component/page?
>>>Something like this?
>>>
>>>public class MyComponent extends BaseComponent
>>>{
>>> public ITreeDataModel getTreeDataModel()
>>> {
>>> return new ITreeDataModel()
>>> {
>>> private MyVisit visit = (MyVisit)
>>> MyComponent.this.getPage().getVisit();
>>>
>>> // Insert tree model implementation here...
>>> };
>>> }
>>>}
>>>
>>>Paul Ferraro
>>>
>>>Glen Stampoultzis wrote:
>>>
>>>>
>>>>I'm using taco-tree at the moment and I'm struggling with one issue
>>>>regarding accessing the visit object from within the tree.
>>>>
>>>>I would like to know if this is possible? From what I can see the
>>>>visit is being passed correctly all the way up during the rendering
>>>>stage but it doesn't get passed on to the model at all. I assume this
>>>>is a problem with other components that have models also?
>>>>
>>>>Regards,
>>>>
>>>>
>>>>Glen Stampoultzis
>>>>gstamp@iinet.net.au
>>>>http://members.iinet.net.au/~gstamp/glen/
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>Glen Stampoultzis
>>gstamp@iinet.net.au
>>http://members.iinet.net.au/~gstamp/glen/
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
Glen Stampoultzis
gstamp@iinet.net.au
http://members.iinet.net.au/~gstamp/glen/
Re: Getting access to the visit from within the Taco's tree
model.
Posted by Glen Stampoultzis <gs...@iinet.net.au>.
(Non-static) Inner classes have (hidden) references to the enclosing
class. I believe this is the cause of the problem.
At 04:14 PM 18/11/2003, you wrote:
>I am sorry, please bear with me, but isn't the model a local class? Are
>you storing the model in the page?
>
>-Harish
>
>Glen Stampoultzis wrote:
>
>>I traced through this pretty carefully. What is actually happening is
>>that the model is holding a reference to an old instance of the page
>>(because it's an inner class) that is no longer part of the current cycle.
>>The _engine variable gets set and cleared on the attach and detach so old
>>instances will no longer have any way to refer back to the engine.
>>-- Glen
>>At 03:43 PM 18/11/2003, you wrote:
>>
>>>That doesn't sound right, may be there is another problem, 'cause the
>>>engine should be attached to the page as soon as it is instantiated or
>>>retrieved from the pool. The rewind/render happens after the page is loaded.
>>>
>>>-Harish
>>>
>>>Glen Stampoultzis wrote:
>>>
>>>>Yes. I thought of that one. Unfortunately is appears that calling
>>>>getPage() at that point in the render will return a page object that
>>>>hasn't had the _engine attached which causes an error during the call
>>>>to getVisit().
>>>>Regards,
>>>>Glen
>>>>
>>>>At 02:38 PM 18/11/2003, you wrote:
>>>>
>>>>>How are you specifying the model for your tree? Can you define it as
>>>>>a nested or anonymous class from within your component/page?
>>>>>Something like this?
>>>>>
>>>>>public class MyComponent extends BaseComponent
>>>>>{
>>>>> public ITreeDataModel getTreeDataModel()
>>>>> {
>>>>> return new ITreeDataModel()
>>>>> {
>>>>> private MyVisit visit = (MyVisit)
>>>>> MyComponent.this.getPage().getVisit();
>>>>>
>>>>> // Insert tree model implementation here...
>>>>> };
>>>>> }
>>>>>}
>>>>>
>>>>>Paul Ferraro
>>>>>
>>>>>Glen Stampoultzis wrote:
>>>>>
>>>>>>
>>>>>>I'm using taco-tree at the moment and I'm struggling with one issue
>>>>>>regarding accessing the visit object from within the tree.
>>>>>>
>>>>>>I would like to know if this is possible? From what I can see the
>>>>>>visit is being passed correctly all the way up during the rendering
>>>>>>stage but it doesn't get passed on to the model at all. I assume
>>>>>>this is a problem with other components that have models also?
>>>>>>
>>>>>>Regards,
>>>>>>
>>>>>>
>>>>>>Glen Stampoultzis
>>>>>>gstamp@iinet.net.au
>>>>>>http://members.iinet.net.au/~gstamp/glen/
>>>>>>
>>>>>>
>>>>>>---------------------------------------------------------------------
>>>>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>---------------------------------------------------------------------
>>>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>>
>>>>
>>>>Glen Stampoultzis
>>>>gstamp@iinet.net.au
>>>>http://members.iinet.net.au/~gstamp/glen/
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>Glen Stampoultzis
>>gstamp@iinet.net.au
>>http://members.iinet.net.au/~gstamp/glen/
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
Glen Stampoultzis
gstamp@iinet.net.au
http://members.iinet.net.au/~gstamp/glen/
Re: Getting access to the visit from within the Taco's tree model.
Posted by Harish Krishnaswamy <hk...@comcast.net>.
I am sorry, please bear with me, but isn't the model a local class? Are you storing the model in the
page?
-Harish
Glen Stampoultzis wrote:
>
> I traced through this pretty carefully. What is actually happening is
> that the model is holding a reference to an old instance of the page
> (because it's an inner class) that is no longer part of the current cycle.
>
> The _engine variable gets set and cleared on the attach and detach so
> old instances will no longer have any way to refer back to the engine.
>
> -- Glen
>
> At 03:43 PM 18/11/2003, you wrote:
>
>> That doesn't sound right, may be there is another problem, 'cause the
>> engine should be attached to the page as soon as it is instantiated or
>> retrieved from the pool. The rewind/render happens after the page is
>> loaded.
>>
>> -Harish
>>
>> Glen Stampoultzis wrote:
>>
>>> Yes. I thought of that one. Unfortunately is appears that calling
>>> getPage() at that point in the render will return a page object that
>>> hasn't had the _engine attached which causes an error during the call
>>> to getVisit().
>>> Regards,
>>> Glen
>>>
>>> At 02:38 PM 18/11/2003, you wrote:
>>>
>>>> How are you specifying the model for your tree? Can you define it
>>>> as a nested or anonymous class from within your component/page?
>>>> Something like this?
>>>>
>>>> public class MyComponent extends BaseComponent
>>>> {
>>>> public ITreeDataModel getTreeDataModel()
>>>> {
>>>> return new ITreeDataModel()
>>>> {
>>>> private MyVisit visit = (MyVisit)
>>>> MyComponent.this.getPage().getVisit();
>>>>
>>>> // Insert tree model implementation here...
>>>> };
>>>> }
>>>> }
>>>>
>>>> Paul Ferraro
>>>>
>>>> Glen Stampoultzis wrote:
>>>>
>>>>>
>>>>> I'm using taco-tree at the moment and I'm struggling with one issue
>>>>> regarding accessing the visit object from within the tree.
>>>>>
>>>>> I would like to know if this is possible? From what I can see the
>>>>> visit is being passed correctly all the way up during the rendering
>>>>> stage but it doesn't get passed on to the model at all. I assume
>>>>> this is a problem with other components that have models also?
>>>>>
>>>>> Regards,
>>>>>
>>>>>
>>>>> Glen Stampoultzis
>>>>> gstamp@iinet.net.au
>>>>> http://members.iinet.net.au/~gstamp/glen/
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>
>>>
>>> Glen Stampoultzis
>>> gstamp@iinet.net.au
>>> http://members.iinet.net.au/~gstamp/glen/
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>
>
> Glen Stampoultzis
> gstamp@iinet.net.au
> http://members.iinet.net.au/~gstamp/glen/
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org