You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2011/10/20 16:19:20 UTC
svn commit: r1186827 - in /jackrabbit/branches/2.2: ./ jackrabbit-core/
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryChecker.java
jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java
Author: reschke
Date: Thu Oct 20 14:19:20 2011
New Revision: 1186827
URL: http://svn.apache.org/viewvc?rev=1186827&view=rev
Log:
JCR-3115: Versioning fixup leaves persistence in a state where the node can't be made versionable again
Extend checker so that it gets the same VersionHistoryInfo object that other code gets when versioning gets enabled again. (ported to 2.2)
Modified:
jackrabbit/branches/2.2/ (props changed)
jackrabbit/branches/2.2/jackrabbit-core/ (props changed)
jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryChecker.java
jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java
Propchange: jackrabbit/branches/2.2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 14:19:20 2011
@@ -3,4 +3,4 @@
/jackrabbit/sandbox/JCR-1456:774917-886178
/jackrabbit/sandbox/JCR-2170:812417-816332
/jackrabbit/sandbox/tripod-JCR-2209:795441-795863
-/jackrabbit/trunk:1038201,1038203,1038205,1038657,1039064,1039347,1039408,1039422-1039423,1039888,1039946,1040033,1040090,1040459,1040601,1040606,1040661,1040958,1041379,1041439,1041761,1042643,1042647,1042978-1042982,1043084-1043086,1043088,1043343,1043357-1043358,1043430,1043554,1043616,1043618,1043637,1043656,1043893,1043897,1044239,1044312,1044451,1044613,1049473,1049491,1049514,1049518,1049520,1049859,1049870,1049874,1049878,1049880,1049883,1049889,1049891,1049894-1049895,1049899-1049901,1049909-1049911,1049915-1049916,1049919,1049923,1049925,1049931,1049936,1049939,1050212,1050298,1050346,1050551,1055068,1055070-1055071,1055116-1055117,1055127,1055134,1055164,1055498,1060431,1060434,1060753,1063756,1064670,1065599,1065622,1066059,1066071,1069831,1071562,1071573,1071680,1074140,1079314,1079317,1080186,1080540,1087304,1088991,1089032,1089053,1089436,1092106,1092117,1092683,1097363,1097513-1097514,1098963-1098964,1099033,1099172,1100242,1100286,1101046,1102601,1104027,112
8175,1130192,1130228,1132993,1136353,1136360,1138511,1141141,1141717,1143396,1143738,1144332,1144338,1144695,1152258,1155431,1157175,1165609,1173196,1174822,1174887,1175988,1176423,1176465,1176515,1176546,1177249,1177340,1179548,1180922,1181712,1183409,1185691,1186285
+/jackrabbit/trunk:1038201,1038203,1038205,1038657,1039064,1039347,1039408,1039422-1039423,1039888,1039946,1040033,1040090,1040459,1040601,1040606,1040661,1040958,1041379,1041439,1041761,1042643,1042647,1042978-1042982,1043084-1043086,1043088,1043343,1043357-1043358,1043430,1043554,1043616,1043618,1043637,1043656,1043893,1043897,1044239,1044312,1044451,1044613,1049473,1049491,1049514,1049518,1049520,1049859,1049870,1049874,1049878,1049880,1049883,1049889,1049891,1049894-1049895,1049899-1049901,1049909-1049911,1049915-1049916,1049919,1049923,1049925,1049931,1049936,1049939,1050212,1050298,1050346,1050551,1055068,1055070-1055071,1055116-1055117,1055127,1055134,1055164,1055498,1060431,1060434,1060753,1063756,1064670,1065599,1065622,1066059,1066071,1069831,1071562,1071573,1071680,1074140,1079314,1079317,1080186,1080540,1087304,1088991,1089032,1089053,1089436,1092106,1092117,1092683,1097363,1097513-1097514,1098963-1098964,1099033,1099172,1100242,1100286,1101046,1102601,1104027,112
8175,1130192,1130228,1132993,1136353,1136360,1138511,1141141,1141717,1143396,1143738,1144332,1144338,1144695,1152258,1155431,1157175,1165609,1173196,1174822,1174887,1175988,1176423,1176465,1176515,1176546,1177249,1177340,1179548,1180922,1181712,1183409,1185691,1186285,1186802
Propchange: jackrabbit/branches/2.2/jackrabbit-core/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 14:19:20 2011
@@ -3,4 +3,4 @@
/jackrabbit/sandbox/JCR-1456/jackrabbit-core:774917-886178
/jackrabbit/sandbox/JCR-2170/jackrabbit-core:812417-816332
/jackrabbit/sandbox/tripod-JCR-2209/jackrabbit-core:795441-795863
-/jackrabbit/trunk/jackrabbit-core:1038201,1038203,1038205,1038657,1039064,1039347,1039408,1039422-1039423,1039888,1039946,1040033,1040090,1040459,1040601,1040606,1040661,1040958,1041379,1041439,1041761,1042643,1042647,1042978-1042982,1043084-1043086,1043088,1043343,1043357-1043358,1043430,1043554,1043616,1043618,1043637,1043656,1043893,1043897,1044239,1044312,1044451,1044613,1049473,1049491,1049514,1049518,1049520,1049859,1049870,1049874,1049878,1049880,1049883,1049889,1049891,1049894-1049895,1049899-1049901,1049909-1049911,1049915-1049916,1049919,1049923,1049925,1049931,1049936,1049939,1050212,1050298,1050346,1050551,1055068,1055070-1055071,1055116-1055117,1055127,1055134,1055164,1055498,1060431,1060434,1060753,1063756,1064670,1065599,1065622,1066059,1066071,1069831,1071562,1071573,1071680,1074140,1079314,1079317,1080186,1080540,1087304,1088991,1089032,1089053,1089436,1092106,1092117,1092683,1097363,1097513-1097514,1098963-1098964,1099033,1099172,1100242,1100286,1101046,110
2601,1104027,1128175,1130192,1130228,1132993,1136353,1136360,1138511,1141141,1141717,1143396,1143738,1144332,1144338,1144695,1152258,1155431,1157175,1165609,1173196,1174822,1174887,1175988,1176423,1176465,1176515,1176546,1177249,1177340,1179548,1180922,1181712,1182713,1182835,1183240,1183409,1185691,1186285
+/jackrabbit/trunk/jackrabbit-core:1038201,1038203,1038205,1038657,1039064,1039347,1039408,1039422-1039423,1039888,1039946,1040033,1040090,1040459,1040601,1040606,1040661,1040958,1041379,1041439,1041761,1042643,1042647,1042978-1042982,1043084-1043086,1043088,1043343,1043357-1043358,1043430,1043554,1043616,1043618,1043637,1043656,1043893,1043897,1044239,1044312,1044451,1044613,1049473,1049491,1049514,1049518,1049520,1049859,1049870,1049874,1049878,1049880,1049883,1049889,1049891,1049894-1049895,1049899-1049901,1049909-1049911,1049915-1049916,1049919,1049923,1049925,1049931,1049936,1049939,1050212,1050298,1050346,1050551,1055068,1055070-1055071,1055116-1055117,1055127,1055134,1055164,1055498,1060431,1060434,1060753,1063756,1064670,1065599,1065622,1066059,1066071,1069831,1071562,1071573,1071680,1074140,1079314,1079317,1080186,1080540,1087304,1088991,1089032,1089053,1089436,1092106,1092117,1092683,1097363,1097513-1097514,1098963-1098964,1099033,1099172,1100242,1100286,1101046,110
2601,1104027,1128175,1130192,1130228,1132993,1136353,1136360,1138511,1141141,1141717,1143396,1143738,1144332,1144338,1144695,1152258,1155431,1157175,1165609,1173196,1174822,1174887,1175988,1176423,1176465,1176515,1176546,1177249,1177340,1179548,1180922,1181712,1182713,1182835,1183240,1183409,1185691,1186285,1186802
Modified: jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryChecker.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryChecker.java?rev=1186827&r1=1186826&r2=1186827&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryChecker.java (original)
+++ jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryChecker.java Thu Oct 20 14:19:20 2011
@@ -41,6 +41,7 @@ import org.apache.jackrabbit.core.versio
import org.apache.jackrabbit.core.version.InternalVersion;
import org.apache.jackrabbit.core.version.InternalVersionHistory;
import org.apache.jackrabbit.core.version.InternalVersionManagerImpl;
+import org.apache.jackrabbit.core.version.VersionHistoryInfo;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.NameFactory;
import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
@@ -129,14 +130,23 @@ class RepositoryChecker {
try {
log.debug("Checking version history of node {}", nid);
- message = "Removing references to a missing version history of node " + nid;
+ String intro = "Removing references to an inconsistent version history of node "
+ + nid;
+
+ message = intro + " (getting the VersionInfo)";
+ VersionHistoryInfo vhi = versionManager.getVersionHistoryInfoForNode(node);
+ if (vhi != null) {
+ // get the version history's node ID as early as possible
+ // so we can attempt a fixup even when the next call fails
+ vhid = vhi.getVersionHistoryId();
+ }
+
+ message = intro + " (getting the InternalVersionHistory)";
InternalVersionHistory vh = versionManager.getVersionHistoryOfNode(nid);
vhid = vh.getId();
// additional checks, see JCR-3101
- String intro = "Removing references to an inconsistent version history of node "
- + nid;
message = intro + " (getting the version names failed)";
Name[] versionNames = vh.getVersionNames();
Modified: jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java?rev=1186827&r1=1186826&r2=1186827&view=diff
==============================================================================
--- jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java (original)
+++ jackrabbit/branches/2.2/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerBase.java Thu Oct 20 14:19:20 2011
@@ -300,11 +300,14 @@ abstract class InternalVersionManagerBas
}
/**
- * {@inheritDoc}
+ * Returns information about the version history of the specified node
+ * or <code>null</code> when unavailable.
+ *
+ * @param vNode node whose version history should be returned
+ * @return identifiers of the version history and root version nodes
+ * @throws RepositoryException if an error occurs
*/
- public VersionHistoryInfo getVersionHistory(Session session, NodeState node,
- NodeId copiedFrom)
- throws RepositoryException {
+ public VersionHistoryInfo getVersionHistoryInfoForNode(NodeState node) throws RepositoryException {
VersionHistoryInfo info = null;
VersioningLock.ReadLock lock = acquireReadLock();
@@ -330,6 +333,17 @@ abstract class InternalVersionManagerBas
lock.release();
}
+ return info;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public VersionHistoryInfo getVersionHistory(Session session, NodeState node,
+ NodeId copiedFrom)
+ throws RepositoryException {
+ VersionHistoryInfo info = getVersionHistoryInfoForNode(node);
+
if (info == null) {
info = createVersionHistory(session, node, copiedFrom);
}