You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by re...@apache.org on 2001/01/22 19:47:18 UTC
cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/method PropFindMethod.java PropPatchMethod.java
remm 01/01/22 10:47:18
Modified: src/webdav/server/org/apache/slide/webdav/method
PropFindMethod.java PropPatchMethod.java
Log:
- Fix for namespace prefix handling in PROPPATCH and PROPFIND.
Thanks to Jintao Pan <ji...@labbook.com> for the fix for the
problem in PROPPATCH, and for the code sample to reproduce the bug.
Revision Changes Path
1.3 +8 -5 jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java
Index: PropFindMethod.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PropFindMethod.java 2000/11/25 01:36:11 1.2
+++ PropFindMethod.java 2001/01/22 18:47:17 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v 1.2 2000/11/25 01:36:11 remm Exp $
- * $Revision: 1.2 $
- * $Date: 2000/11/25 01:36:11 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v 1.3 2001/01/22 18:47:17 remm Exp $
+ * $Revision: 1.3 $
+ * $Date: 2001/01/22 18:47:17 $
*
* ====================================================================
*
@@ -536,6 +536,7 @@
(NodeProperty) propertyList.nextElement();
if (currentProperty != null) {
String namespace = currentProperty.getNamespace();
+ generateNamespaceAbbreviation(namespace);
String namespaceAbbrev =
(String) namespaceAbbrevs.get(namespace);
Object currentPropertyValue = currentProperty.getValue();
@@ -774,7 +775,7 @@
int colon = nodeName.indexOf(':');
if (colon != -1) {
property.name = nodeName.substring(colon + 1);
- property.namespaceAbbrev = nodeName.substring(0, colon - 1);
+ property.namespaceAbbrev = nodeName.substring(0, colon);
String namespace =
(String) namespaces.get(property.namespaceAbbrev);
if ((namespace) != null) {
@@ -799,15 +800,17 @@
*/
private void generateNamespaceAbbreviation(String namespaceName) {
- if (namespaces.get(namespaceName) != null)
+ if (namespaceAbbrevs.get(namespaceName) != null)
return;
String namespaceAbbrev = "ns" + namespaceNumber++;
+ // Make sure it doesn't already exist
while (namespaces.get(namespaceAbbrev) != null) {
namespaceAbbrev = "ns" + namespaceNumber++;
}
namespaces.put(namespaceAbbrev, namespaceName);
+ namespaceAbbrevs.put(namespaceName, namespaceAbbrev);
}
1.4 +4 -4 jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropPatchMethod.java
Index: PropPatchMethod.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropPatchMethod.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PropPatchMethod.java 2001/01/17 16:49:02 1.3
+++ PropPatchMethod.java 2001/01/22 18:47:17 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropPatchMethod.java,v 1.3 2001/01/17 16:49:02 juergen Exp $
- * $Revision: 1.3 $
- * $Date: 2001/01/17 16:49:02 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropPatchMethod.java,v 1.4 2001/01/22 18:47:17 remm Exp $
+ * $Revision: 1.4 $
+ * $Date: 2001/01/22 18:47:17 $
*
* ====================================================================
*
@@ -422,7 +422,7 @@
int colon = nodeName.indexOf(':');
if (colon != -1) {
property.name = nodeName.substring(colon + 1);
- property.namespaceAbbrev = nodeName.substring(0, colon - 1);
+ property.namespaceAbbrev = nodeName.substring(0, colon);
String namespace =
(String) namespaces.get(property.namespaceAbbrev);
if ((namespace) != null) {