[exo-jcr-commits] exo-jcr SVN: r5819 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Mar 6 08:48:15 EST 2012
Author: tolusha
Date: 2012-03-06 08:48:14 -0500 (Tue, 06 Mar 2012)
New Revision: 5819
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java
Log:
EXOJCR-1762: auto-repair for LOCK inconsistency
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java 2012-03-06 13:47:53 UTC (rev 5818)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java 2012-03-06 13:48:14 UTC (rev 5819)
@@ -22,6 +22,10 @@
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.core.security.JCRRuntimePermissions;
+import org.exoplatform.services.jcr.datamodel.ItemType;
+import org.exoplatform.services.jcr.datamodel.NodeData;
+import org.exoplatform.services.jcr.datamodel.PropertyData;
+import org.exoplatform.services.jcr.datamodel.QPathEntry;
import org.exoplatform.services.jcr.impl.Constants;
import org.exoplatform.services.jcr.impl.checker.DummyRepair;
import org.exoplatform.services.jcr.impl.checker.EarlierVersionsRemover;
@@ -30,8 +34,8 @@
import org.exoplatform.services.jcr.impl.checker.InspectionReport;
import org.exoplatform.services.jcr.impl.checker.NodeRemover;
import org.exoplatform.services.jcr.impl.checker.PropertyRemover;
+import org.exoplatform.services.jcr.impl.checker.RootAsParentAssigner;
import org.exoplatform.services.jcr.impl.checker.ValueRecordsRemover;
-import org.exoplatform.services.jcr.impl.checker.RootAsParentAssigner;
import org.exoplatform.services.jcr.impl.core.lock.LockTableHandler;
import org.exoplatform.services.jcr.impl.core.lock.LockTableHandlerFactory;
import org.exoplatform.services.jcr.impl.core.nodetype.NodeTypeDataManagerImpl;
@@ -167,11 +171,19 @@
WorkspaceStorageConnection conn = jdbcDataContainer.openConnection();
try
{
- if (conn instanceof JDBCStorageConnection)
- {
- ((JDBCStorageConnection)conn).deleteLockProperties(nodeId);
- }
+ NodeData parent = (NodeData)conn.getItemData(nodeId);
+ PropertyData prop =
+ (PropertyData)conn.getItemData(parent, new QPathEntry(Constants.JCR_LOCKISDEEP, 0),
+ ItemType.PROPERTY);
+ conn.delete(prop);
+
+ prop =
+ (PropertyData)conn.getItemData(parent, new QPathEntry(Constants.JCR_LOCKOWNER, 0),
+ ItemType.PROPERTY);
+ conn.delete(prop);
+
conn.commit();
+
logComment("Lock has been removed form ITEM table. Node UUID: " + nodeId);
}
catch (RepositoryException e)
@@ -179,11 +191,6 @@
conn.rollback();
throw e;
}
- catch (SQLException e)
- {
- conn.rollback();
- throw e;
- }
}
}
}
More information about the exo-jcr-commits
mailing list