I know that a few other people have been confused by this bug, so I hope this clears 
things up. The bug is just a small quirk in the Option Tag code. It seems that 
StringBuffer works differently on the different JDKs. Here is an example:

StringBuffer sb = new StringBuffer();
String x = null;
sb.append("|");
sb.append(x);
sb.append("|");

System.out.println(sb.toString());

On our Websphere instance which seems to be using jdk 1.3.0 we get this output:
|null|

On a tomcat instance using jdk1.3.1_01 we get this output:
||

After many hours of debugging we found a location in the OptionTag code 
(org.apache.struts.taglib.OptionTag and org.apache.struts.taglib.html.OptionTag) that 
was having this problem. It occurs when the value field is filled out. It looks 
something like this:

results.append("<option value=\"");
results.append(value);
results.append("\"");

We added a fix that looks like this:

results.append("<option value=\"");
if (value != null) {
        results.append(value);
}
results.append("\"");

I am sure that this is also a bug in other tag code regarding this issue. I am going 
to add this to bugzilla today. 

Thanks,
Dave Dandeneau

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

Reply via email to