diff --git a/src/main/java/org/archive/resource/MetaData.java b/src/main/java/org/archive/resource/MetaData.java index 91ef0439..05c0ee06 100755 --- a/src/main/java/org/archive/resource/MetaData.java +++ b/src/main/java/org/archive/resource/MetaData.java @@ -157,19 +157,7 @@ public JSONObject put(String name, long value) throws JSONException { @Override public JSONObject put(String key, Object value) { - if (value instanceof JSONArray) { - super.remove(key); - super.put(key, value); - } else if (has(key)) { - if (super.get(key) instanceof JSONArray) { - ((JSONArray) super.get(key)).put(value); - return this; - } else { - JSONArray array = new JSONArray(); - array.put(super.get(key)); - array.put(value); - super.put(key, array); - } + if (has(key)) { return super.accumulate(key, value); } return super.put(key, value); diff --git a/src/test/java/org/archive/resource/MetaDataTest.java b/src/test/java/org/archive/resource/MetaDataTest.java index ea66135a..64ef7b5b 100644 --- a/src/test/java/org/archive/resource/MetaDataTest.java +++ b/src/test/java/org/archive/resource/MetaDataTest.java @@ -7,8 +7,9 @@ import org.archive.extract.ProducerUtils; import org.archive.extract.ResourceFactoryMapper; import org.archive.format.json.JSONUtils; -import org.json.JSONArray; -import org.json.JSONObject; + +import com.github.openjson.JSONArray; +import com.github.openjson.JSONObject; import junit.framework.TestCase; @@ -73,8 +74,7 @@ private void verifyMultiValuedMetaData(MetaData m) { assertEquals(1.5d, ((JSONArray) m.get("double-1")).getDouble(1)); assertEquals(2.5d, m.getDouble("double-2")); assertEquals(3.5d, m.getDouble("double-3")); - // could be Double or BigDecimal, depending on the Java version - // assertEquals(Double.class, m.get("double-3").getClass()); + assertEquals(Double.class, m.get("double-3").getClass()); assertEquals(3.5d, m.optDouble("double-3")); assertEquals(99.5d, m.optDouble("double-99", 99.5d));