DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14008>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14008 Error in taglib iterator Summary: Error in taglib iterator Product: Tomcat 4 Version: 4.1.12 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Normal Priority: Other Component: Servlet & JSP API AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] In old version (Tomcat 4.0.3) and new version (Tomcat 4.1.12) generated different code for iterator. Original code is: public class MessageListTag extends BodyTagSupport { private static Timer timer = new Timer(MessageListTag.class.getName ()); protected Iterator iterator = null; protected Message message = null; protected String name = null; public int doStartTag() throws JspException { timer.start(); List messages = (List) pageContext.getAttribute("messages"); if (messages == null) { return SKIP_BODY; } if (name == null) { name = "message"; } iterator = messages.iterator(); if (iterator.hasNext()) { message = (Message) iterator.next(); if (!"message".equals(name)) { pageContext.setAttribute("message", message); } pageContext.setAttribute(name, message); return EVAL_BODY_INCLUDE; } else { return SKIP_BODY; } } public int doAfterBody() throws JspException { if (bodyContent != null) { try { JspWriter out = getPreviousOut(); out.write(bodyContent.getString()); bodyContent.clearBody(); } catch (IOException ex) { throw new JspException(ex); } } if (iterator.hasNext()) { message = (Message) iterator.next(); if (!"message".equals(name)) { pageContext.setAttribute("message", message); } pageContext.setAttribute(name, message); return EVAL_BODY_AGAIN; } else { return SKIP_BODY; } } public int doEndTag() throws JspException { timer.finish(); return EVAL_PAGE; } public Message getMessage() { return message; } public void setName(String name) { this.name = name; } } in Tomcat 4.0.3: try { int _jspx_eval_forum_messages_0 = _jspx_th_forum_messages_0.doStartTag(); if (_jspx_eval_forum_messages_0 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) { try { if (_jspx_eval_forum_messages_0 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) { out = pageContext.pushBody(); _jspx_th_forum_messages_0.setBodyContent ((javax.servlet.jsp.tagext.BodyContent) out); _jspx_th_forum_messages_0.doInitBody(); } do { ru.magroup.portal.forum.Message message = null; message = (ru.magroup.portal.forum.Message) pageContext.findAttribute("message"); // end // HTML // begin [file="/forum/threads.jsp";from=(275,34);to= (276,95)] out.write("\r\n\t\t\t\t<div style=\"margin-left: 0; margin-top: 0; margin-right: 0; margin-bottom: 0; padding-left:"); // end // begin [file="/forum/threads.jsp";from=(276,98);to=(276,127)] out.print( message.getLevel() * 15 + 7 ); // end // HTML // begin [file="/forum/threads.jsp";from=(276,129);to= (276,219)] out.write("; padding-top: 1; padding-right: 4; padding-bottom: 0; background-color:transparent\" id=\"t"); // end // begin [file="/forum/threads.jsp";from=(276,219);to=(276,233)] /* ---- message:id ---- */ ru.magroup.portal.forum.taglibs.MessageIdTag _jspx_th_message_id_0 = new ru.magroup.portal.forum.taglibs.MessageIdTag(); _jspx_th_message_id_0.setPageContext(pageContext); _jspx_th_message_id_0.setParent (_jspx_th_forum_messages_0); try { int _jspx_eval_message_id_0 = _jspx_th_message_id_0.doStartTag(); if (_jspx_eval_message_id_0 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) { try { if (_jspx_eval_message_id_0 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) { out = pageContext.pushBody(); _jspx_th_message_id_0.setBodyContent ((javax.servlet.jsp.tagext.BodyContent) out); _jspx_th_message_id_0.doInitBody(); } do { // end // begin [file="/forum/threads.jsp";from=(276,219);to=(276,233)] } while (_jspx_th_message_id_0.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN); } finally { if (_jspx_eval_message_id_0 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) out = pageContext.popBody(); } in Tomcat 4.1.12: do { out.write("\r\n\t\t"); out.write("<tr bgcolor=\"#"); out.print( (odd)?"dfe4f7":"eff1fd" ); out.write("\">\r\n\t\t\t"); out.write("<td>\r\n\t\t\t"); /* ---- forum:messages ---- */ ru.magroup.portal.forum.taglibs.MessageListTag _jspx_th_forum_messages_0 = (ru.magroup.portal.forum.taglibs.MessageListTag) _jspx_tagPool_forum_messages_name.get (ru.magroup.portal.forum.taglibs.MessageListTag.class); _jspx_th_forum_messages_0.setPageContext(pageContext); _jspx_th_forum_messages_0.setParent(_jspx_th_forum_threads_0); _jspx_th_forum_messages_0.setName("message"); int _jspx_eval_forum_messages_0 = _jspx_th_forum_messages_0.doStartTag(); if (_jspx_eval_forum_messages_0 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) { ru.magroup.portal.forum.Message message = null; if (_jspx_eval_forum_messages_0 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) { javax.servlet.jsp.tagext.BodyContent _bc = pageContext.pushBody(); _bc.clear(); out = _bc; _jspx_th_forum_messages_0.setBodyContent(_bc); _jspx_th_forum_messages_0.doInitBody(); message = (ru.magroup.portal.forum.Message) pageContext.findAttribute("message"); } do { out.write("\r\n\t\t\t\t"); out.write("\r\n\t\t\t\t"); out.write("<div style=\"margin-left: 0; margin-top: 0; margin-right: 0; margin-bottom: 0; padding-left:"); out.print( message.getLevel() * 15 + 7 ); out.write("; padding-top: 1; padding-right: 4; padding-bottom: 0; background-color:transparent\" id=\"t"); if (_jspx_meth_message_id_0(_jspx_th_forum_messages_0, pageContext)) return; out.write("\" class=\"textsmall\">"); out.write("<a href=\"javascript:ViewMsg('"); if (_jspx_meth_message_id_1(_jspx_th_forum_messages_0, pageContext)) return; out.write("');\" class=\""); out.print( (message.isClosed()) ? "mainmenusub" : "mainmenu" ); out.write("\">"); if (_jspx_meth_message_title_0(_jspx_th_forum_messages_0, pageContext)) return; out.write("</a> / "); if (_jspx_meth_message_date_0(_jspx_th_forum_messages_0, pageContext)) return; ............. As you can see, in Tomcat 4.0.3 in first iteration message!=null, but in Tomcat 4.1.12 in first iteration message=null. -- To unsubscribe, e-mail: <mailto:tomcat-dev-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:tomcat-dev-help@;jakarta.apache.org>