You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2003/12/22 13:38:02 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util DOMWriter.java
markt 2003/12/22 04:38:02
Modified: catalina/src/share/org/apache/catalina/servlets
WebdavServlet.java
catalina/src/share/org/apache/catalina/util DOMWriter.java
Log:
- Fix bug 8859. Correct namespace handling for lock owners in WebDAV servlet.
Revision Changes Path
1.8 +9 -6 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
Index: WebdavServlet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- WebdavServlet.java 10 Dec 2003 21:29:06 -0000 1.7
+++ WebdavServlet.java 22 Dec 2003 12:38:02 -0000 1.8
@@ -261,9 +261,11 @@
protected DocumentBuilder getDocumentBuilder()
throws ServletException {
DocumentBuilder documentBuilder = null;
+ DocumentBuilderFactory documentBuilderFactory = null;
try {
- documentBuilder =
- DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ documentBuilderFactory = DocumentBuilderFactory.newInstance();
+ documentBuilderFactory.setNamespaceAware(true);
+ documentBuilder = documentBuilderFactory.newDocumentBuilder();
} catch(ParserConfigurationException e) {
throw new ServletException
(sm.getString("webdavservlet.jaxpfailed"));
@@ -1014,6 +1016,7 @@
case Node.ELEMENT_NODE:
strWriter = new StringWriter();
domWriter = new DOMWriter(strWriter, true);
+ domWriter.setQualifiedNames(false);
domWriter.print(currentNode);
lock.owner += strWriter.toString();
break;
1.3 +52 -10 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/DOMWriter.java
Index: DOMWriter.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/DOMWriter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DOMWriter.java 2 Sep 2003 21:22:06 -0000 1.2
+++ DOMWriter.java 22 Dec 2003 12:38:02 -0000 1.3
@@ -98,6 +98,8 @@
"EBCDIC-CP-IS", "EBCDIC-CP-AR2", "UTF-16"
};
+ /** Output qualified names */
+ private boolean qualifiedNames = true;
/** Print writer. */
protected PrintWriter out;
@@ -126,6 +128,14 @@
this.canonical = canonical;
}
+ public boolean getQualifiedNames() {
+ return this.qualifiedNames;
+ }
+
+ public void setQualifiedNames(boolean qualifiedNames) {
+ this.qualifiedNames = qualifiedNames;
+ }
+
public static String getWriterEncoding( ) {
return (PRINTWRITER_ENCODING);
}// getWriterEncoding
@@ -181,12 +191,21 @@
// print element with attributes
case Node.ELEMENT_NODE: {
out.print('<');
- out.print(node.getNodeName());
+ if (this.qualifiedNames) {
+ out.print(node.getNodeName());
+ } else {
+ out.print(node.getLocalName());
+ }
Attr attrs[] = sortAttributes(node.getAttributes());
for ( int i = 0; i < attrs.length; i++ ) {
Attr attr = attrs[i];
out.print(' ');
- out.print(attr.getNodeName());
+ if (this.qualifiedNames) {
+ out.print(attr.getNodeName());
+ } else {
+ out.print(attr.getLocalName());
+ }
+
out.print("=\"");
out.print(normalize(attr.getNodeValue()));
out.print('"');
@@ -214,7 +233,11 @@
}
} else {
out.print('&');
- out.print(node.getNodeName());
+ if (this.qualifiedNames) {
+ out.print(node.getNodeName());
+ } else {
+ out.print(node.getLocalName());
+ }
out.print(';');
}
break;
@@ -241,7 +264,12 @@
// print processing instruction
case Node.PROCESSING_INSTRUCTION_NODE: {
out.print("<?");
- out.print(node.getNodeName());
+ if (this.qualifiedNames) {
+ out.print(node.getNodeName());
+ } else {
+ out.print(node.getLocalName());
+ }
+
String data = node.getNodeValue();
if ( data != null && data.length() > 0 ) {
out.print(' ');
@@ -254,7 +282,11 @@
if ( type == Node.ELEMENT_NODE ) {
out.print("</");
- out.print(node.getNodeName());
+ if (this.qualifiedNames) {
+ out.print(node.getNodeName());
+ } else {
+ out.print(node.getLocalName());
+ }
out.print('>');
}
@@ -271,10 +303,20 @@
array[i] = (Attr)attrs.item(i);
}
for ( int i = 0; i < len - 1; i++ ) {
- String name = array[i].getNodeName();
+ String name = null;
+ if (this.qualifiedNames) {
+ name = array[i].getNodeName();
+ } else {
+ name = array[i].getLocalName();
+ }
int index = i;
for ( int j = i + 1; j < len; j++ ) {
- String curName = array[j].getNodeName();
+ String curName = null;
+ if (this.qualifiedNames) {
+ curName = array[j].getNodeName();
+ } else {
+ curName = array[j].getLocalName();
+ }
if ( curName.compareTo(name) < 0 ) {
name = curName;
index = j;
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org