X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.core%2Fsrc%2Forg%2Fargeo%2Futil%2Fnaming%2FAttributesDictionary.java;h=c211e8e8a40b0316d230f0d7e68cf34f0a8dfdb9;hb=8260f4470f514ea347ca53f5b4dfc632c4a4de66;hp=73099ef4e414d83ecdefd364e91b11f96902ac8c;hpb=2d6b7c0c3badea29451c4d8e41ebb5aca2258806;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.core/src/org/argeo/util/naming/AttributesDictionary.java b/org.argeo.security.core/src/org/argeo/util/naming/AttributesDictionary.java index 73099ef4e..c211e8e8a 100644 --- a/org.argeo.security.core/src/org/argeo/util/naming/AttributesDictionary.java +++ b/org.argeo.security.core/src/org/argeo/util/naming/AttributesDictionary.java @@ -120,10 +120,16 @@ public class AttributesDictionary extends Dictionary { } else { if (attr.size() > 1) throw new IllegalArgumentException("Attribute " + key + " is multi-valued"); - if (attr.size() == 1) - attr.set(0, value.toString()); - else + if (attr.size() == 1) { + try { + if (!attr.get(0).equals(value)) + attr.set(0, value.toString()); + } catch (NamingException e) { + throw new RuntimeException("Cannot check existing value", e); + } + } else { attr.add(value.toString()); + } } return oldValue; }