throw new WebdavException( statusCode );
}
try {
VersioningHelper vHelp =
VersioningHelper.getVersioningHelper(slideToken, token, req, resp, getConfig() );
NodeRevisionDescriptors revisionDescriptors =
content.retrieve(slideToken, resourcePath);
NodeRevisionNumber revisionNumber =
revisionDescriptors.getLatestRevision();
NodeRevisionDescriptor revisionDescriptor = null;
if (revisionNumber != null) {
try {
revisionDescriptor = content.retrieve
(slideToken, revisionDescriptors);
} catch (RevisionDescriptorNotFoundException e) {
}
}
if (revisionDescriptor == null) {
revisionDescriptor = new NodeRevisionDescriptor(0);
}
ResourceKind resourceKind = AbstractResourceKind.determineResourceKind(token, resourcePath, revisionDescriptor);
// check preconditions
ViolatedPrecondition violatedPrecondition = getPreconditionViolation(revisionDescriptors, revisionDescriptor, resourceKind);
if (violatedPrecondition != null) {
throw new PreconditionViolationException(violatedPrecondition, resourcePath);
}
// Changed for DeltaV --start--
boolean mustCheckIn = false;
if( Configuration.useVersionControl() &&
(resourceKind instanceof CheckedInVersionControlled) &&
versioningHelper.mustCheckoutAutoVersionedVCR(revisionDescriptors, revisionDescriptor) ) {
vHelp.checkout(revisionDescriptors, revisionDescriptor, false, false, true );
mustCheckIn = versioningHelper.mustCheckinAutoVersionedVCR(slideToken, revisionDescriptors, revisionDescriptor);
}
// Modifying the properties
Iterator propertyIterator = null;
propertyIterator = propertiesToSet.iterator();
PropPatchProperty currentProperty = null;
while (propertyIterator.hasNext()) {
currentProperty = (PropPatchProperty)propertyIterator.next();
if (checkPropertyModification(currentProperty, revisionDescriptor, resourceKind)) {
NodeProperty newProperty =
new NodeProperty(currentProperty.getName(),
currentProperty.getValue(),
currentProperty.getNamespace());
revisionDescriptor.setProperty(newProperty);
}
else {
allOperationsExcecuted = false;
}
}
propertyIterator = propertiesToRemove.iterator();
while (propertyIterator.hasNext()) {
currentProperty = (PropPatchProperty)propertyIterator.next();
if (checkPropertyModification(currentProperty, revisionDescriptor, resourceKind)) {
revisionDescriptor.removeProperty(currentProperty.getName(),
currentProperty.getNamespace());
}
else {
allOperationsExcecuted = false;
}
}
if (allOperationsExcecuted)
content.store(slideToken, resourcePath, revisionDescriptor, null);
// Changed for DeltaV --start--
if( Configuration.useVersionControl() && mustCheckIn) {
vHelp.checkin(revisionDescriptors, revisionDescriptor, false, false, true ); //forkOk=false, keepCheckedOut=false
}
// Changed for DeltaV --end--
resp.setContentType(TEXT_XML_UTF_8);