pnever 2002/10/09 05:57:34
Modified: src/webdav/server/org/apache/slide/webdav/util
VersioningHelper.java
Log:
Avoid direct usage of method PropertyHelper.computeCheckoutSet().
Revision Changes Path
1.78 +48 -44
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/VersioningHelper.java
Index: VersioningHelper.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/VersioningHelper.java,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- VersioningHelper.java 25 Sep 2002 05:49:42 -0000 1.77
+++ VersioningHelper.java 9 Oct 2002 12:57:34 -0000 1.78
@@ -293,7 +293,7 @@
if( !vrNrd.exists(p.getName()) )
vrNrd.setProperty( p );
}
-
+
// Copy content-type VCR->VR
NodeRevisionContent rNrc = content.retrieve( sToken, rNrds, rNrd );
vrNrd.setContentType(rNrd.getContentType()); // P_GETCONTENTTYPE
@@ -393,8 +393,8 @@
try {
evNrds = content.retrieve( sToken, existingVersionPath );
evNrd = content.retrieve( sToken, evNrds /*, evNrn*/ );
//existingVersionPath
- //redirector
should do the job
- //s.t. evNrn is
not required
+ //redirector should do the job
+ //s.t. evNrn is not required
}
catch( ObjectNotFoundException e ) {}; // can be ignored here!
@@ -510,9 +510,9 @@
protected SearchQueryResult searchResourcesWithGivenHistory(String historyPath,
String scope, int maxDepth) throws ServiceAccessException, BadQueryException {
// make it a relative scope
-// if (scope.startsWith("/")) {
-// scope = scope.substring (1);
-// }
+ // if (scope.startsWith("/")) {
+ // scope = scope.substring (1);
+ // }
SlideUri slideUri = new SlideUri (req.getRequestURI());
String absPath = slideUri.getContextPath (scope);
@@ -529,8 +529,8 @@
SearchQueryResult queryResult = searchHelper.search(sToken, searchQuery);
return queryResult;
- }
-
+ }
+
/**
* Returns the query document used to search all resources in the given
@@ -858,8 +858,8 @@
ViolatedPrecondition violatedPrecondition =
getCheckoutPreconditionViolation(rNrds, rNrd, forkOk);
if (violatedPrecondition != null) {
throw new PreconditionViolationException(violatedPrecondition,
rNrds.getUri());
-
-
+
+
}
NodeRevisionDescriptors vhrNrds = content.retrieve(sToken, vhUri);
@@ -963,17 +963,21 @@
// check if the version is already checked out
PropertyHelper propertyHelper = new PropertyHelper(sToken,
nsaToken);
- XMLValue checkoutSetValue =
propertyHelper.computeCheckoutSet(cinNrds, cinNrd, req.getContextPath(), null);
- if (checkoutSetValue.iterator().hasNext()) {
-
- // check precondition
C_CHECKOUT_OF_CHECKED_OUT_VERSION_IS_FORBIDDEN
- if (E_FORBIDDEN.equals(checkoutForkElement.getName())) {
- return new
ViolatedPrecondition(C_CHECKOUT_OF_CHECKED_OUT_VERSION_IS_FORBIDDEN,
WebdavStatus.SC_FORBIDDEN);
- }
+
+ NodeProperty checkoutSetProp =
propertyHelper.getProperty(P_CHECKOUT_SET, cinNrds, cinNrd, req.getContextPath(),
null);
+ if( checkoutSetProp != null && checkoutSetProp.getValue() != null )
{
+ XMLValue checkoutSetValue = new XMLValue(
checkoutSetProp.getValue().toString() );
+ if (checkoutSetValue.iterator().hasNext()) {
- // check precondition
C_CHECKOUT_OF_CHECKED_OUT_VERSION_IS_DISCOURAGED
- else if (E_DISCOURAGED.equals(checkoutForkElement.getName()) &&
!isForkOk) {
- return new
ViolatedPrecondition(C_CHECKOUT_OF_CHECKED_OUT_VERSION_IS_DISCOURAGED,
WebdavStatus.SC_CONFLICT);
+ // check precondition
C_CHECKOUT_OF_CHECKED_OUT_VERSION_IS_FORBIDDEN
+ if (E_FORBIDDEN.equals(checkoutForkElement.getName())) {
+ return new
ViolatedPrecondition(C_CHECKOUT_OF_CHECKED_OUT_VERSION_IS_FORBIDDEN,
WebdavStatus.SC_FORBIDDEN);
+ }
+
+ // check precondition
C_CHECKOUT_OF_CHECKED_OUT_VERSION_IS_DISCOURAGED
+ else if
(E_DISCOURAGED.equals(checkoutForkElement.getName()) && !isForkOk) {
+ return new
ViolatedPrecondition(C_CHECKOUT_OF_CHECKED_OUT_VERSION_IS_DISCOURAGED,
WebdavStatus.SC_CONFLICT);
+ }
}
}
}
@@ -1097,7 +1101,7 @@
NodeProperty coutProp = rNrd.getProperty( P_CHECKED_OUT );
NodeProperty predSetProp = rNrd.getProperty( P_PREDECESSOR_SET );
NodeProperty autoUpdProp = rNrd.getProperty( P_AUTO_UPDATE );
-
+
// prepare auto-update
NodeRevisionDescriptors autoUpdNrds = null;
NodeRevisionDescriptor autoUpdNrd = null;
@@ -1139,7 +1143,7 @@
vrNrdNew.setContentLength(rNrd.getContentLength());
}
else {
- // Create new VR in the MAIN branch
+ // Create new VR in the MAIN branch
vrNrdNew = new NodeRevisionDescriptor( rNrd.getContentLength() );
}
@@ -1215,8 +1219,8 @@
if( keepCheckedOut || !isWorkingResource ) {
content.store( sToken, rUri, rNrd, null ); //revisionContent=null
try {
- // remove the hidden 0.0 revision and create new one if
keepCheckedOut
- content.remove( sToken, rUri, NodeRevisionNumber.HIDDEN_0_0 );
+ // remove the hidden 0.0 revision and create new one if
keepCheckedOut
+ content.remove( sToken, rUri, NodeRevisionNumber.HIDDEN_0_0 );
}
catch( RevisionDescriptorNotFoundException x ) {
// the implicit CHECKOUT from COPY (auto-versioning) does not
create a
@@ -1320,24 +1324,24 @@
// check precondition C_NO_OVERWRITE_BY_AUTO_UPDATE
if( autoUpdNrd != null ) {
- NodeProperty cinProp = autoUpdNrd.getProperty( P_CHECKED_IN );
- if( cinProp != null ) {
- Element cinHrefElm = pHelp.parsePropertyValue(
(String)cinProp.getValue() );
- UriHandler cinUh = new UriHandler( cinHrefElm.getTextTrim()
);
- NodeRevisionNumber cinNrn = new NodeRevisionNumber(
cinUh.getVersionName() );
+ NodeProperty cinProp = autoUpdNrd.getProperty( P_CHECKED_IN
);
+ if( cinProp != null ) {
+ Element cinHrefElm = pHelp.parsePropertyValue(
(String)cinProp.getValue() );
+ UriHandler cinUh = new UriHandler(
cinHrefElm.getTextTrim() );
+ NodeRevisionNumber cinNrn = new NodeRevisionNumber(
cinUh.getVersionName() );
if(
!vhrNrds.getUri().equals(cinUh.getAssociatedHistoryUri()) ) {
- // violation
- return new
ViolatedPrecondition(C_NO_OVERWRITE_BY_AUTO_UPDATE, WebdavStatus.SC_CONFLICT);
- }
- if( !vhrNrds.isAncestorDescendant(cinNrn, predecessorNrn) )
{
- // violation
- return new
ViolatedPrecondition(C_NO_OVERWRITE_BY_AUTO_UPDATE, WebdavStatus.SC_CONFLICT);
+ // violation
+ return new
ViolatedPrecondition(C_NO_OVERWRITE_BY_AUTO_UPDATE, WebdavStatus.SC_CONFLICT);
+ }
+ if( !vhrNrds.isAncestorDescendant(cinNrn,
predecessorNrn) ) {
+ // violation
+ return new
ViolatedPrecondition(C_NO_OVERWRITE_BY_AUTO_UPDATE, WebdavStatus.SC_CONFLICT);
+ }
}
}
}
}
}
- }
return violatedPrecondition;
}
@@ -1521,7 +1525,7 @@
NodeRevisionDescriptor backupNrd =
new NodeRevisionDescriptor( NodeRevisionNumber.HIDDEN_0_0, "backup",
new Vector(), new Hashtable() );
-
+
NodeProperty p;
p = rNrd.getProperty( P_AUTO_VERSION );
@@ -1531,11 +1535,11 @@
p = rNrd.getProperty( P_COMMENT );
if( p != null )
backupNrd.setProperty( p );
-
+
p = rNrd.getProperty( P_DISPLAYNAME );
if( p != null )
backupNrd.setProperty( p );
-
+
p = rNrd.getProperty( P_CREATOR_DISPLAYNAME );
if( p != null )
backupNrd.setProperty( p );
@@ -1570,7 +1574,7 @@
p = backupNrd.getProperty( P_AUTO_VERSION );
if( p != null )
rNrd.setProperty( p );
-
+
p = backupNrd.getProperty( P_COMMENT );
if( p != null )
rNrd.setProperty( p );
@@ -1604,7 +1608,7 @@
NodeProperty autoVersionProperty =
revisionDescriptor.getProperty(DeltavConstants.P_AUTO_VERSION);
if ( (autoVersionProperty != null) && (autoVersionProperty.getValue() !=
null) ) {
if (autoVersionProperty.getValue().toString().length() > 0) {
- autoVersionValue =
getElementName(autoVersionProperty.getValue().toString());
+ autoVersionValue =
getElementName(autoVersionProperty.getValue().toString());
}
else {
autoVersionValue = "";
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>