Issue 139: merge should use last key in map
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c1974d5..a180a2a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -7,6 +7,9 @@
</properties>
<body>
<release version="1.10-SNAPSHOT" date="in Mercurial" description="Development">
+ <action dev="maslovalex" type="fix">
+ Fix issue 139: merge should use last key in map (2012-01-24)
+ </action>
<action dev="py4fun" type="fix">
Fix issue 136: tabs are allowed in plain scalars. This is a deviation from PyYAML (2012-01-11)
</action>
diff --git a/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java b/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
index 2911380..f64e4c7 100644
--- a/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
+++ b/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
@@ -18,6 +18,7 @@
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -89,6 +90,8 @@
private List<NodeTuple> mergeNode(MappingNode node, boolean isPreffered,
Map<Object, Integer> key2index, List<NodeTuple> values) {
List<NodeTuple> nodeValue = node.getValue();
+ // reversed for http://code.google.com/p/snakeyaml/issues/detail?id=139
+ Collections.reverse(nodeValue);
for (Iterator<NodeTuple> iter = nodeValue.iterator(); iter.hasNext();) {
final NodeTuple nodeTuple = iter.next();
final Node keyNode = nodeTuple.getKeyNode();