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
{
Show replies by date