You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <de...@tapestry.apache.org> on 2008/06/21 02:11:45 UTC

[jira] Created: (TAPESTRY-2471) Parameter fields that are updated during component event processing (such as a form submit) may not clear their values at the end of the request

Parameter fields that are updated during component event processing (such as a form submit) may not clear their values at the end of the request
------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: TAPESTRY-2471
                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2471
             Project: Tapestry
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.0.13
            Reporter: Howard M. Lewis Ship
            Assignee: Howard M. Lewis Ship
            Priority: Critical


The logic for clearing a component parameter field is added as so:

extend method: public void postRenderCleanup()
if (! _$model_invariant)
{
  model = _$model_default;
  _$model_cached = false;
}

The problem is that this postRenderCleanup() is invoked after the component finishes rendering.  If a parameter is updated as part of a form submission, this code is not called, and the parameter value is left behind.  This can lead to leaks, as the parameter value is not cleared before the page is returned to the pool.

The solution is to extend the method containingPageDidDetach() as well.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Closed: (TAPESTRY-2471) Parameter fields that are updated during component event processing (such as a form submit) may not clear their values at the end of the request

Posted by "Howard M. Lewis Ship (JIRA)" <de...@tapestry.apache.org>.
     [ https://issues.apache.org/jira/browse/TAPESTRY-2471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAPESTRY-2471.
------------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.0.14

Added a *lot* of event dispatch logging logic while tracking this one down.

> Parameter fields that are updated during component event processing (such as a form submit) may not clear their values at the end of the request
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAPESTRY-2471
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2471
>             Project: Tapestry
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.13
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>             Fix For: 5.0.14
>
>
> The logic for clearing a component parameter field is added as so:
> extend method: public void postRenderCleanup()
> if (! _$model_invariant)
> {
>   model = _$model_default;
>   _$model_cached = false;
> }
> The problem is that this postRenderCleanup() is invoked after the component finishes rendering.  If a parameter is updated as part of a form submission, this code is not called, and the parameter value is left behind.  This can lead to leaks, as the parameter value is not cleared before the page is returned to the pool.
> The solution is to extend the method containingPageDidDetach() as well.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


[jira] Commented: (TAPESTRY-2471) Parameter fields that are updated during component event processing (such as a form submit) may not clear their values at the end of the request

Posted by "Howard M. Lewis Ship (JIRA)" <de...@tapestry.apache.org>.
    [ https://issues.apache.org/jira/browse/TAPESTRY-2471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12606941#action_12606941 ] 

Howard M. Lewis Ship commented on TAPESTRY-2471:
------------------------------------------------

This only affects unbound parameters:

add method: private org.apache.tapestry5.beaneditor.BeanModel _$read_parameter_model()
{
  if (_$model_cached || ! _$resources.isLoaded() || ! _$resources.isBound("model")) return model;
  org.apache.tapestry5.beaneditor.BeanModel result = ($r) ((org.apache.tapestry5.beaneditor.BeanModel) _$resources.readParameter("model", "org.apache.tapestry5.beaneditor.BeanModel"));
  if (_$model_invariant || _$resources.isRendering())
  {
    model = result;
    _$model_cached = true;
  }
  return result;
}


replace read model: _$read_parameter_model();

add method: private void _$update_parameter_model(org.apache.tapestry5.beaneditor.BeanModel $1)
{
  if (! _$resources.isLoaded())
  {
    model = $1;
    return;
  }
  if (_$resources.isBound("model"))
    _$resources.writeParameter("model", ($w)$1);
  model = $1;
  _$model_cached = _$resources.isRendering();
}


replace write model: _$update_parameter_model();

> Parameter fields that are updated during component event processing (such as a form submit) may not clear their values at the end of the request
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAPESTRY-2471
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2471
>             Project: Tapestry
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.13
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>
> The logic for clearing a component parameter field is added as so:
> extend method: public void postRenderCleanup()
> if (! _$model_invariant)
> {
>   model = _$model_default;
>   _$model_cached = false;
> }
> The problem is that this postRenderCleanup() is invoked after the component finishes rendering.  If a parameter is updated as part of a form submission, this code is not called, and the parameter value is left behind.  This can lead to leaks, as the parameter value is not cleared before the page is returned to the pool.
> The solution is to extend the method containingPageDidDetach() as well.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org