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>&nbsp;/&nbsp;");
                  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>

Reply via email to