[exo-jcr-commits] exo-jcr SVN: r5712 - in jcr/trunk: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Feb 29 07:50:42 EST 2012


Author: tolusha
Date: 2012-02-29 07:50:41 -0500 (Wed, 29 Feb 2012)
New Revision: 5712

Modified:
   jcr/trunk/exo.jcr.component.core.impl.infinispan.v5/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNLockTableHandler.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
   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/db/MultiDbJDBCConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
Log:
EXOJCR-1762: repair db

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java	2012-02-29 12:48:50 UTC (rev 5711)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java	2012-02-29 12:50:41 UTC (rev 5712)
@@ -145,6 +145,11 @@
    protected String FIND_PROPERTIES_BY_PARENTID;
 
    /**
+    * FIND_LOWEST_PROPERTY_VERSIONS.
+    */
+   protected String FIND_LOWEST_PROPERTY_VERSIONS;
+
+   /**
     * INSERT_NODE.
     */
    protected String INSERT_NODE;

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java	2012-02-29 12:48:50 UTC (rev 5711)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java	2012-02-29 12:50:41 UTC (rev 5712)
@@ -167,6 +167,8 @@
 
    protected PreparedStatement findPropertiesByParentId;
 
+   protected PreparedStatement findLowestPropertyVersions;
+
    protected PreparedStatement insertItem;
 
    protected PreparedStatement insertNode;
@@ -481,6 +483,11 @@
             findPropertiesByParentId.close();
          }
 
+         if (findLowestPropertyVersions != null)
+         {
+            findLowestPropertyVersions.close();
+         }
+
          if (insertItem != null)
          {
             insertItem.close();
@@ -2666,6 +2673,16 @@
       }
    };
 
+   protected ResultSet findLowestPropertyVersions() throws SQLException
+   {
+      if (findLowestPropertyVersions == null)
+      {
+         findLowestPropertyVersions = dbConnection.prepareStatement(FIND_LOWEST_PROPERTY_VERSIONS);
+      }
+
+      return findLowestPropertyVersions.executeQuery();
+   }
+
    protected abstract int addNodeRecord(NodeData data) throws SQLException;
 
    protected abstract int addPropertyRecord(PropertyData prop) throws SQLException;
@@ -2727,4 +2744,5 @@
    protected abstract ResultSet findValuesStorageDescriptorsByPropertyId(String cid) throws SQLException;
 
    protected abstract ResultSet findValueByPropertyIdOrderNumber(String cid, int orderNumb) throws SQLException;
+
 }

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-02-29 12:48:50 UTC (rev 5711)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java	2012-02-29 12:50:41 UTC (rev 5712)
@@ -23,7 +23,7 @@
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.core.security.JCRRuntimePermissions;
 import org.exoplatform.services.jcr.impl.Constants;
-import org.exoplatform.services.jcr.impl.checker.AssignRootAsParentRepair;
+import org.exoplatform.services.jcr.impl.checker.AssignerRootAsParent;
 import org.exoplatform.services.jcr.impl.checker.DummyRepair;
 import org.exoplatform.services.jcr.impl.checker.InspectionQuery;
 import org.exoplatform.services.jcr.impl.checker.InspectionQueryFilteredMultivaluedProperties;
@@ -456,7 +456,7 @@
          : "select * from JCR_SITEM I where I.CONTAINER_NAME='" + jdbcDataContainer.containerName
             + "' and NOT EXISTS(select * from JCR_SITEM P where P.ID = I.PARENT_ID)", new String[]{
          DBConstants.COLUMN_ID, DBConstants.COLUMN_PARENTID, DBConstants.COLUMN_NAME, DBConstants.COLUMN_CLASS},
-            "Items that do not have parent nodes", new AssignRootAsParentRepair(jdbcDataContainer
+            "Items that do not have parent nodes", new AssignerRootAsParent(jdbcDataContainer
                .getConnectionFactory())));
 
       itemsInspectionQuery
@@ -524,7 +524,7 @@
          : "select * from JCR_SITEM I where I.ID = I.PARENT_ID and I.CONTAINER_NAME='"
             + jdbcDataContainer.containerName + "' and I.NAME <> '" + Constants.ROOT_PARENT_NAME + "'", new String[]{
          DBConstants.COLUMN_ID, DBConstants.COLUMN_PARENTID, DBConstants.COLUMN_NAME}, "An item is its own parent.",
-         new AssignRootAsParentRepair(jdbcDataContainer.getConnectionFactory())));
+         new AssignerRootAsParent(jdbcDataContainer.getConnectionFactory())));
 
       itemsInspectionQuery
          .add(new InspectionQuery(

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java	2012-02-29 12:48:50 UTC (rev 5711)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java	2012-02-29 12:50:41 UTC (rev 5712)
@@ -137,6 +137,10 @@
 
       FIND_PROPERTIES_BY_PARENTID = "select * from JCR_MITEM" + " where I_CLASS=2 and PARENT_ID=?" + " order by ID";
 
+      FIND_LOWEST_PROPERTY_VERSIONS =
+         "select max(VERSION) as MAX_VERSION, PARENT_ID, NAME, I_CLASS, I_INDEX from JCR_SITEM WHERE I_CLASS=2"
+            + " GROUP BY PARENT_ID, NAME, I_CLASS, I_INDEX HAVING count(VERSION) > 1";
+
       INSERT_NODE =
          "insert into JCR_MITEM(ID, PARENT_ID, NAME, VERSION, I_CLASS, I_INDEX, N_ORDER_NUM) VALUES(?,?,?,?,"
             + I_CLASS_NODE + ",?,?)";

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java	2012-02-29 12:48:50 UTC (rev 5711)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java	2012-02-29 12:50:41 UTC (rev 5712)
@@ -146,6 +146,10 @@
       FIND_PROPERTIES_BY_PARENTID =
          "select * from JCR_SITEM" + " where I_CLASS=2 and CONTAINER_NAME=? and PARENT_ID=?" + " order by ID";
 
+      FIND_LOWEST_PROPERTY_VERSIONS =
+         "select max(VERSION) as MAX_VERSION, PARENT_ID, NAME, CONTAINER_NAME, I_CLASS, I_INDEX from JCR_SITEM WHERE I_CLASS=2"
+            + " GROUP BY PARENT_ID, CONTAINER_NAME, NAME, I_CLASS, I_INDEX HAVING count(VERSION) > 1";
+
       INSERT_NODE =
          "insert into JCR_SITEM(ID, PARENT_ID, NAME, CONTAINER_NAME, VERSION, I_CLASS, I_INDEX, N_ORDER_NUM) VALUES(?,?,?,?,?,"
             + I_CLASS_NODE + ",?,?)";

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java	2012-02-29 12:48:50 UTC (rev 5711)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java	2012-02-29 12:50:41 UTC (rev 5712)
@@ -181,6 +181,10 @@
       FIND_NODES_BY_PARENTID_AND_PATTERN_CQ_TEMPLATE =
          "select I.*, P.NAME AS PROP_NAME, V.ORDER_NUM, V.DATA from JCR_MITEM I, JCR_MITEM P, JCR_MVALUE V";
 
+      FIND_LOWEST_PROPERTY_VERSIONS =
+         "select max(VERSION) as MAX_VERSION, PARENT_ID, NAME, I_CLASS, I_INDEX from JCR_SITEM WHERE I_CLASS=2"
+            + " GROUP BY PARENT_ID, NAME, I_CLASS, I_INDEX HAVING count(VERSION) > 1";
+
       INSERT_NODE =
          "insert into JCR_MITEM(ID, PARENT_ID, NAME, VERSION, I_CLASS, I_INDEX, N_ORDER_NUM) VALUES(?,?,?,?,"
             + I_CLASS_NODE + ",?,?)";

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java	2012-02-29 12:48:50 UTC (rev 5711)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java	2012-02-29 12:50:41 UTC (rev 5712)
@@ -190,6 +190,10 @@
       FIND_NODES_BY_PARENTID_AND_PATTERN_CQ_TEMPLATE =
          "select I.*, P.NAME AS PROP_NAME, V.ORDER_NUM, V.DATA from JCR_SITEM I, JCR_SITEM P, JCR_SVALUE V";
 
+      FIND_LOWEST_PROPERTY_VERSIONS =
+         "select max(VERSION) as MAX_VERSION, PARENT_ID, NAME, CONTAINER_NAME, I_CLASS, I_INDEX from JCR_SITEM WHERE I_CLASS=2"
+            + " GROUP BY PARENT_ID, CONTAINER_NAME, NAME, I_CLASS, I_INDEX HAVING count(VERSION) > 1";
+
       INSERT_NODE =
          "insert into JCR_SITEM(ID, PARENT_ID, NAME, CONTAINER_NAME, VERSION, I_CLASS, I_INDEX, N_ORDER_NUM) VALUES(?,?,?,?,?,"
             + I_CLASS_NODE + ",?,?)";

Modified: jcr/trunk/exo.jcr.component.core.impl.infinispan.v5/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNLockTableHandler.java
===================================================================
--- jcr/trunk/exo.jcr.component.core.impl.infinispan.v5/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNLockTableHandler.java	2012-02-29 12:48:50 UTC (rev 5711)
+++ jcr/trunk/exo.jcr.component.core.impl.infinispan.v5/src/main/java/org/exoplatform/services/jcr/impl/core/lock/infinispan/ISPNLockTableHandler.java	2012-02-29 12:50:41 UTC (rev 5712)
@@ -20,6 +20,7 @@
 
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
+import org.exoplatform.services.jcr.impl.checker.DummyRepair;
 import org.exoplatform.services.jcr.impl.checker.InspectionQuery;
 import org.exoplatform.services.jcr.impl.core.lock.AbstractLockTableHandler;
 import org.exoplatform.services.log.ExoLogger;
@@ -54,7 +55,8 @@
     */
    protected InspectionQuery getSelectQuery() throws SQLException
    {
-      return new InspectionQuery("SELECT * FROM " + getTableName(), new String[]{getIdColumn()}, "Locks table match");
+      return new InspectionQuery("SELECT * FROM " + getTableName(), new String[]{getIdColumn()}, "Locks table match",
+         new DummyRepair());
    }
 
    /**
@@ -63,7 +65,7 @@
    public InspectionQuery getDeleteQuery(String nodeId) throws SQLException
    {
       return new InspectionQuery("DELETE FROM " + getTableName() + " WHERE " + getIdColumn() + "='" + nodeId + "'",
-         new String[]{}, "");
+         new String[]{}, "", new DummyRepair());
    }
 
    /**



More information about the exo-jcr-commits mailing list