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 =