unico 2004/09/17 07:49:14
Modified: src/webdav/server/org/apache/slide/webdav/method Tag:
SLIDE_2_1_RELEASE_BRANCH AclMethod.java
Log:
fix NPE when adding ACE with non-existent privilege
Revision Changes Path
No revision
No revision
1.45.2.1 +14 -7
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/AclMethod.java
Index: AclMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/AclMethod.java,v
retrieving revision 1.45
retrieving revision 1.45.2.1
diff -u -r1.45 -r1.45.2.1
--- AclMethod.java 9 Aug 2004 12:05:29 -0000 1.45
+++ AclMethod.java 17 Sep 2004 14:49:13 -0000 1.45.2.1
@@ -166,9 +166,16 @@
while (privilegeIt.hasNext()) {
Element privilegeElm = (Element)privilegeIt.next();
actionUri = createActionUri(privilegeElm);
- NodePermission np = new NodePermission(objectUri, subjectUri,
actionUri, true, negative);
- np.setInvert(invert);
- result.add(np);
+ if (actionUri == null) {
+ throw new PreconditionViolationException(
+ new ViolatedPrecondition("not-supported-privilege",
WebdavStatus.SC_BAD_REQUEST), resourcePath
+ );
+ }
+ else {
+ NodePermission np = new NodePermission(objectUri, subjectUri,
actionUri, true, negative);
+ np.setInvert(invert);
+ result.add(np);
+ }
}
return result;
}
@@ -226,7 +233,7 @@
else {
ObjectNode actions = structure.retrieve(slideToken,
token.getNamespaceConfig().getActionsPath());
ObjectNode action = findAction(actions.getChildren().iterator(),
privilegeName, privilegeNamespace);
- return action.getUri();
+ return action != null ? action.getUri() : null;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]