You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2015/10/26 21:41:35 UTC
svn commit: r1710690 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
Author: mreutegg
Date: Mon Oct 26 20:41:34 2015
New Revision: 1710690
URL: http://svn.apache.org/viewvc?rev=1710690&view=rev
Log:
OAK-3551: Failing version restore tests
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java?rev=1710690&r1=1710689&r2=1710690&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java Mon Oct 26 20:41:34 2015
@@ -202,7 +202,7 @@ class VersionableState {
*/
NodeBuilder create() throws CommitFailedException {
try {
- createFrozen(versionable, uuidFromNode(versionable), frozenNode);
+ createFrozen(versionable, uuidFromNode(versionable), frozenNode, VERSION);
return frozenNode;
} catch (RepositoryException e) {
throw new CommitFailedException(CommitFailedException.VERSION,
@@ -453,26 +453,16 @@ class VersionableState {
}
}
- private void createFrozen(NodeBuilder src, String srcId, NodeBuilder dest)
+ private void createFrozen(NodeBuilder src, String srcId, NodeBuilder dest, int opva)
throws CommitFailedException, RepositoryException {
initFrozen(dest, src, srcId);
- copyProperties(src, dest, new OPVProvider() {
- @Override
- public int getAction(NodeBuilder src,
- NodeBuilder dest,
- PropertyState prop)
- throws RepositoryException {
- String propName = prop.getName();
- if (BASIC_FROZEN_PROPERTIES.contains(propName)) {
- // OAK-940: do not overwrite basic frozen properties
- return IGNORE;
- } else if (isHiddenProperty(propName)) {
- // don't copy hidden properties except for :childOrder
- return IGNORE;
- }
- return getOPV(src, prop);
- }
- }, true);
+ OPVProvider opvProvider;
+ if (opva == OnParentVersionAction.COPY) {
+ opvProvider = OPVForceCopy.INSTANCE;
+ } else {
+ opvProvider = new OPVVersion();
+ }
+ copyProperties(src, dest, opvProvider, true);
// add the frozen children and histories
for (String name : src.getChildNodeNames()) {
@@ -494,10 +484,10 @@ class VersionableState {
versionedChild(child, dest.child(name));
} else {
// else copy
- createFrozen(child, childId, dest.child(name));
+ createFrozen(child, childId, dest.child(name), COPY);
}
} else if (opv == COPY) {
- createFrozen(child, childId, dest.child(name));
+ createFrozen(child, childId, dest.child(name), COPY);
}
}
}
@@ -609,4 +599,23 @@ class VersionableState {
return COPY;
}
}
+
+ private final class OPVVersion implements OPVProvider {
+
+ @Override
+ public int getAction(NodeBuilder src,
+ NodeBuilder dest,
+ PropertyState prop)
+ throws RepositoryException {
+ String propName = prop.getName();
+ if (BASIC_FROZEN_PROPERTIES.contains(propName)) {
+ // OAK-940: do not overwrite basic frozen properties
+ return IGNORE;
+ } else if (isHiddenProperty(propName)) {
+ // don't copy hidden properties except for :childOrder
+ return IGNORE;
+ }
+ return getOPV(src, prop);
+ }
+ }
}