Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSnjezana Peco2016-05-05 19:20:39 +0000
committerVictor Rubezhny2016-05-12 01:43:01 +0000
commit9257217bf0161edd6d4b540f1e24892987827b21 (patch)
treea0fc86144df063781e03d241db5b79f0c3969a0e
parent809563d64d67abb0c002c27e36d17809d417da73 (diff)
downloadwebtools.sourceediting-9257217bf0161edd6d4b540f1e24892987827b21.tar.gz
webtools.sourceediting-9257217bf0161edd6d4b540f1e24892987827b21.tar.xz
webtools.sourceediting-9257217bf0161edd6d4b540f1e24892987827b21.zip
Bug 492469 - JSON validator ignores duplicate key
Change-Id: I37021982bf71567aa64990caa9b260a8ab18ab2c Signed-off-by: Snjezana Peco <snjeza.peco@gmail.com>
-rw-r--r--bundles/org.eclipse.json/src/org/eclipse/json/provisonnal/com/eclipsesource/json/JsonParser.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/bundles/org.eclipse.json/src/org/eclipse/json/provisonnal/com/eclipsesource/json/JsonParser.java b/bundles/org.eclipse.json/src/org/eclipse/json/provisonnal/com/eclipsesource/json/JsonParser.java
index 070d3f51ce..0d8c77023b 100644
--- a/bundles/org.eclipse.json/src/org/eclipse/json/provisonnal/com/eclipsesource/json/JsonParser.java
+++ b/bundles/org.eclipse.json/src/org/eclipse/json/provisonnal/com/eclipsesource/json/JsonParser.java
@@ -13,6 +13,8 @@ package org.eclipse.json.provisonnal.com.eclipsesource.json;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.List;
class JsonParser {
@@ -123,9 +125,15 @@ class JsonParser {
if( readChar( '}' ) ) {
return object;
}
+ List<String> names = new ArrayList<String>();
do {
skipWhiteSpace();
String name = readName();
+ if (names.contains(name)) {
+ throw error("Duplicate key '" + name + "'");
+ } else {
+ names.add(name);
+ }
skipWhiteSpace();
if( !readChar( ':' ) ) {
throw expected( "':'" );

Back to the top