Author: etnu
Date: Tue Jan 13 14:25:52 2009
New Revision: 734259

URL: http://svn.apache.org/viewvc?rev=734259&view=rev
Log:
Applied fix for SHINDIG-847, contributed by Adam Winer.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
    
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java?rev=734259&r1=734258&r2=734259&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
 Tue Jan 13 14:25:52 2009
@@ -20,7 +20,6 @@
 import org.apache.shindig.common.xml.XmlException;
 import org.apache.shindig.common.xml.XmlUtil;
 
-import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 
 import org.json.JSONObject;
@@ -127,7 +126,7 @@
       throws SpecParserException {
     NodeList nodes = element.getElementsByTagName("msg");
 
-    ImmutableMap.Builder<String, String> messages = ImmutableMap.builder();
+    Map<String, String> messages = Maps.newHashMap();
 
     for (int i = 0, j = nodes.getLength(); i < j; ++i) {
       Element msg = (Element)nodes.item(i);
@@ -138,7 +137,8 @@
       }
       messages.put(name, msg.getTextContent().trim());
     }
-    return messages.build();
+    
+    return Collections.unmodifiableMap(messages);
   }
 
   @Override

Modified: 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java?rev=734259&r1=734258&r2=734259&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java
 Tue Jan 13 14:25:52 2009
@@ -24,6 +24,7 @@
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.common.xml.XmlUtil;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 
 import org.json.JSONException;
@@ -72,6 +73,17 @@
     assertEquals(MESSAGES, bundle.getMessages());
   }
 
+  @Test
+  public void duplicateKeyIgnored() throws Exception {
+    String duplicateKeyXml =
+      "<messagebundle>" +
+      "  <msg name='key'>value</msg>" +
+      "  <msg name='key'>value</msg>" +
+      "</messagebundle>";
+    MessageBundle bundle = new MessageBundle(locale, duplicateKeyXml);
+    assertEquals(ImmutableMap.of("key", "value"), bundle.getMessages());
+  }
+  
   @Test(expected = SpecParserException.class)
   public void missingNameThrows() throws SpecParserException {
     String xml = "<messagebundle><msg>foo</msg></messagebundle>";


Reply via email to