[exo-jcr-commits] exo-jcr SVN: r5833 - jcr/branches/1.15.x/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:04:32 EDT 2012


Author: tolusha
Date: 2012-03-12 03:04:31 -0400 (Mon, 12 Mar 2012)
New Revision: 5833

Modified:
   jcr/branches/1.15.x/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/branches/1.15.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
===================================================================
--- jcr/branches/1.15.x/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)
+++ jcr/branches/1.15.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java	2012-03-12 07:04:31 UTC (rev 5833)
@@ -1671,6 +1671,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