Author: tolusha
Date: 2012-03-06 08:47:53 -0500 (Tue, 06 Mar 2012)
New Revision: 5818
Modified:
jcr/branches/1.15.x/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/branches/1.15.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java
===================================================================
---
jcr/branches/1.15.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java 2012-03-06
13:32:25 UTC (rev 5817)
+++
jcr/branches/1.15.x/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)
@@ -23,6 +23,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;
@@ -168,11 +172,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)
@@ -180,11 +192,6 @@
conn.rollback();
throw e;
}
- catch (SQLException e)
- {
- conn.rollback();
- throw e;
- }
}
}
}
Show replies by date