diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java index 2da5e02b32..7fb633e401 100644 --- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java +++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java @@ -13,6 +13,7 @@ * * Copyright 2008-2009 Sun Microsystems, Inc. * Portions Copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2022-2024 3A Systems, LLC. */ package org.opends.server.workflowelement.localbackend; @@ -281,8 +282,8 @@ private void processDelete(AtomicBoolean executePostOpPlugins) { if (dn.isInScopeOf(entryDN, SearchScope.WHOLE_SUBTREE)) { setResultCodeAndMessageNoInfoDisclosure(entry,ResultCode.NOT_ALLOWED_ON_NONLEAF, ERR_DELETE_HAS_SUB_BACKEND.get(entryDN, dn)); - } - return; + return; + } } // Actually perform the delete. diff --git a/opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java b/opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java index 4294802a4d..61c3a3c7d1 100644 --- a/opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java +++ b/opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java @@ -30,6 +30,7 @@ import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; +import static org.testng.Assert.assertEquals; @Test(sequential = true) public class OverlappingBackendTestSuite extends DirectoryServerTestCase { @@ -125,5 +126,26 @@ public void test_userRoot2() throws Exception { hasUserRoot(search("o=test")); hasUserRoot2(search("o=test")); hasUserRoot2(search("ou=eus,o=test")); + + int resultCode = TestCaseUtils.applyModifications(true, + "dn: uid=user.1,o=test,ou=es,o=test", + "changetype: modify", + "add: description", + "description: user.1"); + assertEquals(resultCode, 0); + + resultCode = TestCaseUtils.applyModifications(true, + "dn: uid=user.2,o=test,ou=eus,o=test", + "changetype: modify", + "add: description", + "description: user.2"); + assertEquals(resultCode, 0); + + hasUserRoot(search("o=test")); + hasUserRoot2(search("o=test")); + hasUserRoot2(search("ou=eus,o=test")); + + TestCaseUtils.deleteEntry(DN.valueOf("uid=user.1,o=test,ou=es,o=test")); + TestCaseUtils.deleteEntry(DN.valueOf("uid=user.2,o=test,ou=eus,o=test")); } }