horwat      01/05/22 14:43:37

  Modified:    jasper/src/share/org/apache/jasper/compiler
                        JspParseEventListener.java XmlOutputter.java
  Log:
  Fix the syntax generated by XmlOutputter. Properly check and close an element with 
no body.
  
  Bugzilla #1819
  
  Revision  Changes    Path
  1.30      +11 -11    
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java
  
  Index: JspParseEventListener.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- JspParseEventListener.java        2001/04/27 18:09:29     1.29
  +++ JspParseEventListener.java        2001/05/22 21:43:29     1.30
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
 1.29 2001/04/27 18:09:29 craigmcc Exp $
  - * $Revision: 1.29 $
  - * $Date: 2001/04/27 18:09:29 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
 1.30 2001/05/22 21:43:29 horwat Exp $
  + * $Revision: 1.30 $
  + * $Date: 2001/05/22 21:43:29 $
    *
    * ====================================================================
    *
  @@ -786,7 +786,7 @@
        }
   
        else if (!directive.equals("include")) {
  -         xo.append("jsp:directive." + directive, attrs);
  +         xo.append("jsp:directive." + directive, attrs, true);
        }
       }
   
  @@ -882,7 +882,7 @@
                                     genSessionVariable, isXml),
                   start, stop);
           addGenerator(gen);
  -        xo.append("jsp:useBean", attrs);
  +        xo.append("jsp:useBean", attrs, false);
       }
   
       public void handleBeanEnd(Mark start, Mark stop, Attributes attrs)
  @@ -904,7 +904,7 @@
                                   beanInfo), start, stop);
   
        addGenerator(gen);
  -     xo.append("jsp:getProperty", attrs);
  +     xo.append("jsp:getProperty", attrs, true);
       }
   
       public void handleSetProperty(Mark start, Mark stop, Attributes attrs)
  @@ -922,7 +922,7 @@
                   new SetPropertyGenerator(start, stop, attrs, beanInfo, isXml),
                   start, stop);
           addGenerator(gen);
  -        xo.append("jsp:setProperty", attrs);
  +        xo.append("jsp:setProperty", attrs, true);
       }
   
       public void handlePlugin(Mark start, Mark stop, Attributes attrs,
  @@ -960,7 +960,7 @@
                   new ForwardGenerator(start, attrs, param, isXml),
                   start, stop);
        addGenerator(gen);
  -     xo.append("jsp:forward", attrs);
  +     xo.append("jsp:forward", attrs, false);
        xo.append("jsp:param", param);
        xo.append("jsp:forward");
       }
  @@ -981,7 +981,7 @@
                   new IncludeGenerator(start, attrs, param, isXml),
                   start, stop);
        addGenerator(gen);
  -     xo.append("jsp:include", attrs);
  +     xo.append("jsp:include", attrs, false);
        xo.append("jsp:param", param);
        xo.append("jsp:include");
       }
  @@ -1026,7 +1026,7 @@
                                     getTagVarNumbers(), hasBody, isXml);
           Generator gen = new GeneratorWrapper(tbg, start, stop);
        addGenerator(gen);
  -        xo.append(prefix+":"+shortTagName, attrs);
  +        xo.append(prefix+":"+shortTagName, attrs, false);
       }
   
       public void handleTagEnd(Mark start, Mark stop, String prefix,
  @@ -1080,7 +1080,7 @@
            new UninterpretedTagBeginGenerator(rawName, attrs);
           Generator genWrapper = new GeneratorWrapper(gen, start, stop);
        addGenerator(genWrapper);
  -        xo.append(rawName, attrs);
  +        xo.append(rawName, attrs, false);
       }
   
       public void handleUninterpretedTagEnd(Mark start, Mark stop,
  
  
  
  1.14      +15 -11    
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java
  
  Index: XmlOutputter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- XmlOutputter.java 2001/04/27 18:09:32     1.13
  +++ XmlOutputter.java 2001/05/22 21:43:32     1.14
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
 1.13 2001/04/27 18:09:32 craigmcc Exp $
  - * $Revision: 1.13 $
  - * $Date: 2001/04/27 18:09:32 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
 1.14 2001/05/22 21:43:32 horwat Exp $
  + * $Revision: 1.14 $
  + * $Date: 2001/05/22 21:43:32 $
    *
    * ====================================================================
    *
  @@ -167,8 +167,8 @@
        * Append the start tag along with its attributes to the
        * XML stream.
        */
  -    void append(String tag, Attributes attrs) {
  -        append(tag, attrs, sb);
  +    void append(String tag, Attributes attrs, boolean hasNoBody) {
  +        append(tag, attrs, sb, hasNoBody);
       }
       
       /**
  @@ -184,7 +184,7 @@
            AttributesImpl attrs = new AttributesImpl();
            attrs.addAttribute("", "name", "name", "CDATA", name);
            attrs.addAttribute("", "value", "value", "CDATA", value);
  -         append(tag, attrs, sb);
  +         append(tag, attrs, sb, false);
            append(tag);
        }
       }
  @@ -197,10 +197,12 @@
        * can only be generated once we've processed all parts
        * of the translation unit]
        */
  -    void append(String tag, Attributes attrs, StringBuffer buff) {
  +    void append(String tag, Attributes attrs, StringBuffer buff, boolean hasNoBody) 
{
           buff.append("<").append(tag);
           if (attrs == null || attrs.getLength() < 1) {
  -            buff.append(">");
  +            if (hasNoBody)
  +                buff.append("/>");
  +            else buff.append(">");
           } else {
               buff.append("\n");
               int attrsLength = attrs.getLength();
  @@ -210,7 +212,9 @@
                   buff.append("  ").append(name).append("=\"");
                buff.append(JspUtil.getExprInXml(value)).append("\"\n");
               }
  -            buff.append(">\n");
  +            if (hasNoBody)
  +                buff.append("/>\n");
  +            else buff.append(">\n");
           }
       }
   
  @@ -219,7 +223,7 @@
        * to the XML stream.
        */
       void append(String tag, Attributes attrs, char[] text) {
  -        append(tag, attrs);
  +        append(tag, attrs, false);
           append(text);
           sb.append("</").append(tag).append(">\n");
       }
  @@ -239,7 +243,7 @@
           AttributesImpl attrs = new AttributesImpl();
   
           
  -        append("jsp:root", rootAttrs, buff);
  +        append("jsp:root", rootAttrs, buff, false);
        buff.append(sb.toString());
           buff.append("</jsp:root>");
        InputStream is = 
  
  
  

Reply via email to