You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Peter Fassev (JIRA)" <ji...@apache.org> on 2006/08/28 12:14:31 UTC
[jira] Created: (STR-2937) Iterate Tag uses EVAL_BODY_TAG and
always buffers the body content - add option to include the body
Iterate Tag uses EVAL_BODY_TAG and always buffers the body content - add option to include the body
---------------------------------------------------------------------------------------------------
Key: STR-2937
URL: http://issues.apache.org/struts/browse/STR-2937
Project: Struts 1
Issue Type: Improvement
Components: Taglibs
Affects Versions: 1.2.9
Reporter: Peter Fassev
Priority: Critical
The doStartTag() method of the logic:iterate Tag returns EVAL_BODY_TAG, which is equal to EVAL_BODY_BUFFERED. This is in many cases (I think in 99%) very inefficient, especially for large collections or large body contents. Please add an optional parameter, for instance "bufferBody=true|false", where the user can select, whether to include or to buffer the body of the tag. The default value may be "true", to prevent inconsistencies with older versions but I want to propose to make the default value "false" for the 1.3.x Version and to document the change in the migration tutorial.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (STR-2937) Iterate Tag uses EVAL_BODY_TAG and
always buffers the body content - add option to include the body
Posted by "Peter Fassev (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/struts/browse/STR-2937?page=comments#action_38889 ]
Peter Fassev commented on STR-2937:
-----------------------------------
An iterator is a common language construct, which may be used every ware, for instance to iterate over huge HTML formatted messages in a blog. Please look at the current implementation of Tomcat. Once created, all Bodies of a JspContext are cached (and currently there may be up to JspContext 100 cached contexts), which may lead to large memory consumption.
If you read the comments on sum bugzilla issues about this, you will find from one of the main tomcat creator, which simply proposes, not to use tags, which produces huge buffered output. This is simply horrible and unacceptable. That's why I have set the priority of this Issue to "Critical".
> Iterate Tag uses EVAL_BODY_TAG and always buffers the body content - add option to include the body
> ---------------------------------------------------------------------------------------------------
>
> Key: STR-2937
> URL: http://issues.apache.org/struts/browse/STR-2937
> Project: Struts 1
> Issue Type: Improvement
> Components: Taglibs
> Affects Versions: 1.2.9
> Reporter: Peter Fassev
> Priority: Critical
>
> The doStartTag() method of the logic:iterate Tag returns EVAL_BODY_TAG, which is equal to EVAL_BODY_BUFFERED. This is in many cases (I think in 99%) very inefficient, especially for large collections or large body contents. Please add an optional parameter, for instance "bufferBody=true|false", where the user can select, whether to include or to buffer the body of the tag. The default value may be "true", to prevent inconsistencies with older versions but I want to propose to make the default value "false" for the 1.3.x Version and to document the change in the migration tutorial.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (STR-2937) Iterate Tag uses EVAL_BODY_TAG and
always buffers the body content - add option to include the body
Posted by "Paul Benedict (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/struts/browse/STR-2937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul Benedict updated STR-2937:
-------------------------------
Priority: Major (was: Critical)
Fix Version/s: 1.4.0
> Iterate Tag uses EVAL_BODY_TAG and always buffers the body content - add option to include the body
> ---------------------------------------------------------------------------------------------------
>
> Key: STR-2937
> URL: https://issues.apache.org/struts/browse/STR-2937
> Project: Struts 1
> Issue Type: Improvement
> Components: Taglibs
> Affects Versions: 1.2.9
> Reporter: Peter Fassev
> Fix For: 1.4.0
>
>
> The doStartTag() method of the logic:iterate Tag returns EVAL_BODY_TAG, which is equal to EVAL_BODY_BUFFERED. This is in many cases (I think in 99%) very inefficient, especially for large collections or large body contents. Please add an optional parameter, for instance "bufferBody=true|false", where the user can select, whether to include or to buffer the body of the tag. The default value may be "true", to prevent inconsistencies with older versions but I want to propose to make the default value "false" for the 1.3.x Version and to document the change in the migration tutorial.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STR-2937) Iterate Tag uses EVAL_BODY_TAG and
always buffers the body content - add option to include the body
Posted by "Paul Benedict (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/struts/browse/STR-2937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46881#action_46881 ]
Paul Benedict commented on STR-2937:
------------------------------------
Aruthur, I agree this should be fixed. If you have a patch, attach it to this issue.
> Iterate Tag uses EVAL_BODY_TAG and always buffers the body content - add option to include the body
> ---------------------------------------------------------------------------------------------------
>
> Key: STR-2937
> URL: https://issues.apache.org/struts/browse/STR-2937
> Project: Struts 1
> Issue Type: Improvement
> Components: Tag Libraries
> Affects Versions: 1.2.9
> Reporter: Peter Fassev
> Fix For: 1.4.x
>
>
> The doStartTag() method of the logic:iterate Tag returns EVAL_BODY_TAG, which is equal to EVAL_BODY_BUFFERED. This is in many cases (I think in 99%) very inefficient, especially for large collections or large body contents. Please add an optional parameter, for instance "bufferBody=true|false", where the user can select, whether to include or to buffer the body of the tag. The default value may be "true", to prevent inconsistencies with older versions but I want to propose to make the default value "false" for the 1.3.x Version and to document the change in the migration tutorial.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STR-2937) Iterate Tag uses EVAL_BODY_TAG and
always buffers the body content - add option to include the body
Posted by "Arthur Nogueira Neves (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/struts/browse/STR-2937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46656#action_46656 ]
Arthur Nogueira Neves commented on STR-2937:
--------------------------------------------
How can I submit my resolution for this issue?Can i open a branch to this?
> Iterate Tag uses EVAL_BODY_TAG and always buffers the body content - add option to include the body
> ---------------------------------------------------------------------------------------------------
>
> Key: STR-2937
> URL: https://issues.apache.org/struts/browse/STR-2937
> Project: Struts 1
> Issue Type: Improvement
> Components: Tag Libraries
> Affects Versions: 1.2.9
> Reporter: Peter Fassev
> Fix For: 1.4.x
>
>
> The doStartTag() method of the logic:iterate Tag returns EVAL_BODY_TAG, which is equal to EVAL_BODY_BUFFERED. This is in many cases (I think in 99%) very inefficient, especially for large collections or large body contents. Please add an optional parameter, for instance "bufferBody=true|false", where the user can select, whether to include or to buffer the body of the tag. The default value may be "true", to prevent inconsistencies with older versions but I want to propose to make the default value "false" for the 1.3.x Version and to document the change in the migration tutorial.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (STR-2937) Iterate Tag uses EVAL_BODY_TAG and
always buffers the body content - add option to include the body
Posted by "Hayden Foot (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/struts/browse/STR-2937?page=comments#action_38871 ]
Hayden Foot commented on STR-2937:
----------------------------------
I have looked into this type of behaviour a bit recently (see my issue STR-2976). I you case, although the logic:iterate tag's doStartTag() method returns EVAL_BODY_TAG, it's buffered body is written to it's parent's body at the end of each iteration - see doAfterBody() implementation for details. Hence large iterations should not necessarily be an issue.
> Iterate Tag uses EVAL_BODY_TAG and always buffers the body content - add option to include the body
> ---------------------------------------------------------------------------------------------------
>
> Key: STR-2937
> URL: http://issues.apache.org/struts/browse/STR-2937
> Project: Struts 1
> Issue Type: Improvement
> Components: Taglibs
> Affects Versions: 1.2.9
> Reporter: Peter Fassev
> Priority: Critical
>
> The doStartTag() method of the logic:iterate Tag returns EVAL_BODY_TAG, which is equal to EVAL_BODY_BUFFERED. This is in many cases (I think in 99%) very inefficient, especially for large collections or large body contents. Please add an optional parameter, for instance "bufferBody=true|false", where the user can select, whether to include or to buffer the body of the tag. The default value may be "true", to prevent inconsistencies with older versions but I want to propose to make the default value "false" for the 1.3.x Version and to document the change in the migration tutorial.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (STR-2937) Iterate Tag uses EVAL_BODY_TAG and
always buffers the body content - add option to include the body
Posted by "Hayden Foot (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/struts/browse/STR-2937?page=comments#action_38914 ]
Hayden Foot commented on STR-2937:
----------------------------------
Agreed - I just wanted to point out that large iterations by them selves are not necessarily a problem, but you are correct if each iteration produces a large body (or you have nested iterations ) there is a definite issue.
> Iterate Tag uses EVAL_BODY_TAG and always buffers the body content - add option to include the body
> ---------------------------------------------------------------------------------------------------
>
> Key: STR-2937
> URL: http://issues.apache.org/struts/browse/STR-2937
> Project: Struts 1
> Issue Type: Improvement
> Components: Taglibs
> Affects Versions: 1.2.9
> Reporter: Peter Fassev
> Priority: Critical
>
> The doStartTag() method of the logic:iterate Tag returns EVAL_BODY_TAG, which is equal to EVAL_BODY_BUFFERED. This is in many cases (I think in 99%) very inefficient, especially for large collections or large body contents. Please add an optional parameter, for instance "bufferBody=true|false", where the user can select, whether to include or to buffer the body of the tag. The default value may be "true", to prevent inconsistencies with older versions but I want to propose to make the default value "false" for the 1.3.x Version and to document the change in the migration tutorial.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira