[exo-jcr-commits] exo-jcr SVN: r5832 - 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
Mon Mar 12 03:02:51 EDT 2012


Author: tolusha
Date: 2012-03-12 03:02:49 -0400 (Mon, 12 Mar 2012)
New Revision: 5832

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
Log:
EXOJCR-1799: Prevent an infinite loop in case a node is its own parent

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-03-09 12:27:21 UTC (rev 5831)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java	2012-03-12 07:02:49 UTC (rev 5832)
@@ -1620,6 +1620,11 @@
                new QPathEntry(InternalQName.parse(parent.getString(COLUMN_NAME)), parent.getInt(COLUMN_INDEX), caid);
             qrpath.add(qpe);
             caid = parent.getString(COLUMN_PARENTID);
+
+            if (caid.equals(parent.getString(COLUMN_ID)))
+            {
+               throw new InvalidItemStateException("An item with id='" + getIdentifier(caid) + "' is its own parent");
+            }
          }
          finally
          {



More information about the exo-jcr-commits mailing list