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:54 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util DOMWriter.java
markt 2003/12/22 04:38:54
Modified: catalina/src/share/org/apache/catalina/servlets
WebdavServlet.java
catalina/src/share/org/apache/catalina/util DOMWriter.java
Log:
- Port patch.
- Fix bug 8859. Correct namespace handling for lock owners in WebDAV servlet.
Revision Changes Path
1.31 +9 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
Index: WebdavServlet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- WebdavServlet.java 10 Dec 2003 21:36:05 -0000 1.30
+++ WebdavServlet.java 22 Dec 2003 12:38:54 -0000 1.31
@@ -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 -11 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/DOMWriter.java
Index: DOMWriter.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/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 22 Jul 2001 20:25:13 -0000 1.2
+++ DOMWriter.java 22 Dec 2003 12:38:54 -0000 1.3
@@ -69,7 +69,6 @@
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
/**
* A sample DOM writer. This sample program illustrates how to
@@ -95,6 +94,8 @@
"EBCDIC-CP-IS", "EBCDIC-CP-AR2", "UTF-16"
};
+ /** Output qualified names */
+ private boolean qualifiedNames = true;
/** Print writer. */
protected PrintWriter out;
@@ -123,6 +124,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
@@ -178,12 +187,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('"');
@@ -211,7 +229,11 @@
}
} else {
out.print('&');
- out.print(node.getNodeName());
+ if (this.qualifiedNames) {
+ out.print(node.getNodeName());
+ } else {
+ out.print(node.getLocalName());
+ }
out.print(';');
}
break;
@@ -238,7 +260,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(' ');
@@ -251,7 +278,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('>');
}
@@ -268,10 +299,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