diff --git a/scm-core/src/main/java/sonia/scm/xml/XmlMapStringAdapter.java b/scm-core/src/main/java/sonia/scm/xml/XmlMapStringAdapter.java index 8c45bda93b..ab6cd83ccc 100644 --- a/scm-core/src/main/java/sonia/scm/xml/XmlMapStringAdapter.java +++ b/scm-core/src/main/java/sonia/scm/xml/XmlMapStringAdapter.java @@ -39,7 +39,6 @@ import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ -import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -50,7 +49,7 @@ import javax.xml.bind.annotation.adapters.XmlAdapter; * @author Sebastian Sdorra */ public class XmlMapStringAdapter - extends XmlAdapter, Map> + extends XmlAdapter> { /** @@ -64,21 +63,27 @@ public class XmlMapStringAdapter * @throws Exception */ @Override - public ArrayList marshal(Map map) - throws Exception + public XmlMapStringElement[] marshal(Map map) throws Exception { - ArrayList elements = - new ArrayList(); + XmlMapStringElement[] elements = null; if (Util.isNotEmpty(map)) { int i = 0; + int s = map.size(); + + elements = new XmlMapStringElement[s]; for (Map.Entry e : map.entrySet()) { - elements.add(new XmlMapStringElement(e.getKey(), e.getValue())); + elements[i] = new XmlMapStringElement(e.getKey(), e.getValue()); + i++; } } + else + { + elements = new XmlMapStringElement[0]; + } return elements; } @@ -94,7 +99,7 @@ public class XmlMapStringAdapter * @throws Exception */ @Override - public Map unmarshal(ArrayList elements) + public Map unmarshal(XmlMapStringElement[] elements) throws Exception { Map map = new HashMap();