Well, if you have the source from the book you can add the code to
release().
If not, you can take a performance hit and turn off tag pooling:
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jasper-howto.html

enablePooling - Determines whether tag handler pooling is enabled. true
or false, default true

Chanan Braunstein
knovel Corp.
Web Development Manager
607-648-4770 x672
http://www.knovel.com
 


-----Original Message-----
From: Etienne [mailto:[EMAIL PROTECTED]] 
Sent: Thursday, February 06, 2003 11:17 AM
To: 'Tomcat Users List'
Subject: RE: Bug? in Tomcat 4.1.18 with TagLib


Does it mean that all the tag lib from the Manning Book are wrong with
theses TagLib specs? The manning tag lib will never  work on the 4.1.18
environment.


E.L.


-----Original Message-----
From: John Trollinger [mailto:[EMAIL PROTECTED]] 
Sent: February 6, 2003 8:40 AM
To: 'Tomcat Users List'
Subject: RE: Bug? in Tomcat 4.1.18 with TagLib

This is because of tag pooling.

Please see http://issues.apache.org/bugzilla/show_bug.cgi?id=13392 or
http://issues.apache.org/bugzilla/show_bug.cgi?id=16001 or
http://issues.apache.org/bugzilla/show_bug.cgi?id=10220

And there are lots more.

John

> -----Original Message-----
> From: Etienne [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, February 06, 2003 8:30 AM
> To: [EMAIL PROTECTED]
> Subject: Bug? in Tomcat 4.1.18 with TagLib
> 
> 
> Hi,
>  
> I am new to this list, and I add problem retrieving archive,
> so sorry if that question was already answered.
>  
> My web application was running on tomcat 3,2 and 4.0.3 it was
> running well. Now that I have switch to Tomcat 4.1.18 I have 
> a strange problem with one of my custom tag. It seems that 
> the local variables in the
> doStartTag() method are not cleared after the tag, something 
> is not calling the clearProperties() method at the end of 
> each tag. But if I put clearProperties() inside the 
> doStartTag(), it is working better. But I cannot still get a 
> random number for each image. The main idea is that every tag 
> on the page is using the same value for some variable. It 
> shouldn't happen. Any idea?
>  
> By the way, I think I can fix it by clearing each value in
> the doStartTag(), but I still don't understand why is was 
> working on Tomcat 3.2, 4.0.3 and not and 4.1.8. The specs 
> says that the variables should be clean with the 
> clearProperties() after the end of the tag. Is there a 
> problem of configuration on my side?
>  
> Here's the code, I use the Manning "Jsp Tag Library" classes
> as a base.
>  
> package my.taglib.html;
>  
> import my.taglib.util.LocalStrings;
> import my.taglib.util.ExTagSupport;
> import java.util.Properties;
> import javax.servlet.jsp.JspException;
> import javax.servlet.jsp.JspTagException;
> import java.util.Random;
> public class DwRollTag extends ExTagSupport {
>  
>     static LocalStrings ls =
> LocalStrings.getLocalStrings(TestHtmlTag.class);
>     protected String url = null;
>     protected String imgid = null;
>     protected String image = null;
>     protected String imageOut = null;
>  
>     public void setUrl(String url) {this.url = url;}
>     public void setImgid(String imgid) {this.imgid = imgid;}
>     public void setImage(String image) {this.image = image;}
>     public void setImageOut(String imageOut) {this.imageOut =
> imageOut;}
>  
>  
>     public int doStartTag() throws JspException{
>  
>             if(null==url){url = "";}
>             if(null==image){image = ""; imageOut="";}
>             if(imgid == null){ imgid = getRandom();}
>             if(imageOut == null){imageOut = getImageOut(image);}
>             System.err.println(" image :" +  image + ", url :
> " + url + ", imgid : " + imgid+ ", imageOut : " + imageOut);
>  
>         try {
>             pageContext.getOut().print(getImageRoll(url,
> imgid, image, imageOut));
>         } catch(java.io.IOException ioe) {
>  
>             // User probably disconnected ...
>             log(ls.getStr("error"), ioe);
>             throw new JspTagException(ls.getStr("error"));
>         }
>  
>         return SKIP_BODY;
>     }
>  
>     protected String getRandom(){
>         Random wheel = new Random() ;
>         int unique = ( wheel.nextInt() & Integer.MAX_VALUE )
> %900000 + 100000 ;
>         return "" + unique;
>     }
>  
>             /**
>  * short version of getImageRoll, locationOut is named form
> the location in + a "_over" just
>  *  before the file extention
>  *
>  * @param name
>  * @param locationIn
>  * @return
>  */
>     public String getImageOut(String image){
>             String imageOut;
>             int length = image.length();
>             int dot = image.lastIndexOf(".");
>             String first = "";
>             String last = ".gif";
>             if(dot!=-1){
>             first = image.substring(0,dot);
>             last = image.substring(dot, length);
>         }
>             imageOut = first+"_over"+last;
>             return imageOut;
>             }
>  
> /**
>  * getImageRoll return a typical rollover statement used by a
> standard javascript function "changeImage()"
>  * @param name
>  * @param locationIn
>  * @param locationOut
>  * @return
>  */
>     public String getImageRoll(String url,
>                                 String imgid,
>                                 String image,
>                                 String imageOut){
>  
>         String retString = "<a href=\""+url+"\"
> onMouseOut=\"MM_swapImgRestore()\"
> onMouseOver=\"MM_swapImage('"+imgid+"','','"+imageOut+"',1)\"><img
> name=\""+imgid+"\" border=\"0\" src=\""+image+"\"></a>";
>         return retString;
>     }
>  
>  
>      protected void clearProperties(){
>         url = null;
>         imgid = null;
>         image = null;
>         imageOut = null;
>         super.clearProperties();
>     }
>  
> }
>  
>  
>  
> tks
>  
> E. L.
> [EMAIL PROTECTED]
>  
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to