tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hans Bergsten <h...@gefionsoftware.com>
Subject Re: TagHandlerPool doesn't release Tags on reuse
Date Mon, 11 Nov 2002 20:05:55 GMT
Torsten,

You may want to read the section about the tag handler lifecycle in an
article I wrote for ONJava.com:

   <http://www.onjava.com/pub/a/onjava/2001/11/07/jsp12.html>

It explains how the methods are called and how to deal with attribute
values.

Hans
Torsten Fohrer wrote:
> But if i looking into the generated jsp/servlet sources, i see the following:
> 
> --------------- example ---
>       /* ----  tools:simpleCell ---- */
>       de.dcsi.util.jsp.taglibs.Validator_SimpleCell 
> _jspx_th_tools_simpleCell_0 = (de.dcsi.util.jsp.taglibs.Validator_SimpleCell) 
> _jspx_
> tagPool_tools_simpleCell_width_valign_messageName_height_errorName_errorColor.get(de.dcsi.util.jsp.taglibs.Validator_SimpleCell.class);
>       _jspx_th_tools_simpleCell_0.setPageContext(pageContext);
>       _jspx_th_tools_simpleCell_0.setParent(null);
>       _jspx_th_tools_simpleCell_0.setErrorName("messages");
>       _jspx_th_tools_simpleCell_0.setMessageName("login");
>       _jspx_th_tools_simpleCell_0.setHeight("30");
>       _jspx_th_tools_simpleCell_0.setValign("top");
>       _jspx_th_tools_simpleCell_0.setWidth("14%");
>       _jspx_th_tools_simpleCell_0.setErrorColor( errorColor );
>       int _jspx_eval_tools_simpleCell_0 = 
> _jspx_th_tools_simpleCell_0.doStartTag();
>       if (_jspx_th_tools_simpleCell_0.doEndTag() == 
> javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
>         return;
> 
> 
> -------- example
> 
> If i now reset my tag to a initial state in doStartTag() i haven't any 
> properties set........
> 
> Who call the release method in reaction of the GC, finalize can't it.
> 
> On Monday 11 November 2002 18:44, Kin-Man Chung wrote:
> 
>>According to the JSP 1.2 Spec, the release method is not invoked between
>>tag usages, but is invoked before GC of the tag handler.  Therefore
>>it should not be used to reset the tag handler to its initial state;
>>you should do that in doStartTag.  See p164 and p166.
>>
>>
>>>Date: Mon, 11 Nov 2002 13:32:31 +0100
>>>From: Torsten Fohrer <Torsten.Fohrer@dcsi.de>
>>>Subject: TagHandlerPool doesn't release Tags on reuse
>>>To: "'tomcat-dev@jakarta.apache.org'" <tomcat-dev@jakarta.apache.org>
>>>
>>>
>>>I have some jsp sites which taglibs. With pooling enabled, some problems
>>>occures.
>>>
>>>Samples:
>>>
>>>  Customer Registration: all fields have the same values???
>>>  Sessions Values are used together
>>>
>>>After reading the jsp spezifikation and source of the
>>>jasper/runtime/TagHandlerPool, i see that the pool doesn't call release
>>>in his reuse method?
>>>
>>>After adding a general release in the reuse methode, which perhaps breaks
>>>the lifecycle of the IterationTag ( see jsp-spec, page 168 ) it's
>>>working.
>>>
>>>    /**
>>>     * Adds the given tag handler to this tag handler pool, unless this
>>>tag * handler pool has already reached its capacity, in which case the
>>>tag * handler's release() method is called.
>>>     *
>>>     * @param handler Tag handler to add to this tag handler pool
>>>     */
>>>    public synchronized void reuse(Tag handler) {
>>>
>>>        // Releasing Tags, see jsp spec 1.2-fcs, page 172
>>>        handler.release();
>>>
>>>        if (current < (handlers.length - 1))
>>>            handlers[++current] = handler;
>>>    }
>>>
>>>Torsten Fohrer
>>>
>>>**********************************************************
>>>* DCSI AG                    * Tel.: +49 7131 155 88-0   *
>>>* Lessingstrasse 17-19       * Fax.: +49 7131 155 88-99  *
>>>* D-74076 Heilbronn          * tf@dcsi.de                *
>>>* GERMANY                    * http://www.dcsi.de        *
>>>**********************************************************
>>>
>>>--
>>>To unsubscribe, e-mail:  
>>><mailto:tomcat-dev-unsubscribe@jakarta.apache.org> For additional
>>>commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>
>>
>>--
>>To unsubscribe, e-mail:  
>><mailto:tomcat-dev-unsubscribe@jakarta.apache.org> For additional commands,
>>e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>
> 

-- 
Hans Bergsten		hans@gefionsoftware.com
Gefion Software		http://www.gefionsoftware.com
JavaServer Pages	http://TheJSPBook.com


--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>


Mime
View raw message