Protect against mutability of LdapName
authorMathieu <mbaudier@argeo.org>
Thu, 1 Dec 2022 04:30:33 +0000 (05:30 +0100)
committerMathieu <mbaudier@argeo.org>
Thu, 1 Dec 2022 04:30:33 +0000 (05:30 +0100)
org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java
org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntryWorkingCopy.java

index 94ff20b03a185caa6ce5dcf111946d139cb8f94f..94e0ac46def207abecdfeb66743cbc77e45002c2 100644 (file)
@@ -74,7 +74,8 @@ public class DefaultLdapEntry implements LdapEntry {
 
        @Override
        public LdapName getDn() {
-               return dn;
+               // always return a copy since LdapName is mutable
+               return (LdapName) dn.clone();
        }
 
        public synchronized Attributes getAttributes() {
index b5afc9dce17b04c6173db7b4b143ba35fc600d2a..58e565a378596e9b14d5d809939c8551e895f2c5 100644 (file)
@@ -9,7 +9,7 @@ import org.argeo.api.cms.transaction.AbstractWorkingCopy;
 public class LdapEntryWorkingCopy extends AbstractWorkingCopy<LdapEntry, Attributes, LdapName> {
        @Override
        protected LdapName getId(LdapEntry entry) {
-               return entry.getDn();
+               return (LdapName) entry.getDn().clone();
        }
 
        @Override