Index: src/org/apache/xml/security/utils/XMLUtils.java =================================================================== --- src/org/apache/xml/security/utils/XMLUtils.java (Revision 810928) +++ src/org/apache/xml/security/utils/XMLUtils.java (Arbeitskopie) @@ -23,6 +23,7 @@ import java.io.OutputStream; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -227,7 +228,7 @@ static String dsPrefix=null; - static Map namePrefixes=new HashMap(); + static private final Map namePrefixes=new HashMap(); /** * Creates an Element in the XML Signature specification namespace. * @@ -245,13 +246,15 @@ if ((dsPrefix == null) || (dsPrefix.length() == 0)) { return doc.createElementNS(Constants.SignatureSpecNS, elementName); } - String namePrefix=(String) namePrefixes.get(elementName); + String namePrefix=(String) Collections.unmodifiableMap(namePrefixes).get(elementName); if (namePrefix==null) { StringBuffer tag=new StringBuffer(dsPrefix); tag.append(':'); tag.append(elementName); namePrefix=tag.toString(); - namePrefixes.put(elementName,namePrefix); + synchronized (namePrefixes) { + namePrefixes.put(elementName,namePrefix); + } } return doc.createElementNS(Constants.SignatureSpecNS, namePrefix); }