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>";