[ 
https://issues.apache.org/jira/browse/TILES-522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13212875#comment-13212875
 ] 

Mck SembWever commented on TILES-522:
-------------------------------------

*just testing jira wiki renderer*

For example we have overridden TemplateAttributeRender like
{code}
public void write(
    final Object template,
    final Attribute attribute,
    final TilesRequestContext request) throws IOException {

 if(request instanceof JspTilesRequestContext && template instanceof String){
  try {
   ((JspTilesRequestContext) request)
              .getPageContext()
              .getServletContext()
              .getRequestDispatcher((String)template)
              .include((ServletRequest) request.getRequest(), (ServletResponse) 
request.getResponse()); 
  } catch (ServletException ex) {
  throw new TilesIOException(ex);
 }
}else{
 super.write(template, attribute, request); }
}{code}
                
> Performance of TemplateAttributeRender in Tomcat
> ------------------------------------------------
>
>                 Key: TILES-522
>                 URL: https://issues.apache.org/jira/browse/TILES-522
>             Project: Tiles
>          Issue Type: Task
>          Components: tiles-core
>    Affects Versions: 2.2.2
>         Environment: Java6, Java7, Tomcat6
>            Reporter: Mck SembWever
>            Priority: Minor
>              Labels: performance
>         Attachments: TILES-522.patch
>
>
> TeamplateAttributeRender.write(..) boils down to using 
> JspRuntimeLibrary.include(..)
> In Tomcat-6 this involves wrapping the request and response (a number of 
> times?) and going through security checks (again and again and again...).
> At FINN.no we're getting scores of requests per second per jvm and seeing 
> this method becoming a bottleneck, mainly due to thread contention in the 
> security checks.
> The method can be sped up by calling, if possible, 
> requestDispatcher.include(..)
> For example we have overridden TemplateAttributeRender like
>     public void write(
>             final Object template,
>             final Attribute attribute,
>             final TilesRequestContext request) throws IOException {
>         if(request instanceof JspTilesRequestContext && template instanceof 
> String){
>             try {
>                 ((JspTilesRequestContext) request)
>                         .getPageContext()
>                         .getServletContext()
>                         .getRequestDispatcher((String)template)
>                         .include((ServletRequest) request.getRequest(), 
> (ServletResponse) request.getResponse());
>             } catch (ServletException ex) {
>                 throw new TilesIOException(ex);
>             }
>         }else{
>             super.write(template, attribute, request);
>         }
>     }
> I doubt that this is an appropriate patch to apply, it hides superclass 
> functionality, but maybe there is a better place to apply it?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to