Browse Source

Removes static declaration of JSON_PARSER.

This allows for multi-threaded use of JsonPath.
pull/2/head
Andrew Louth 14 years ago
parent
commit
cabc3d0021
  1. 6
      json-path/src/main/java/com/jayway/jsonpath/JsonPath.java
  2. 10
      json-path/src/test/java/com/jayway/jsonpath/ParserTest.java

6
json-path/src/main/java/com/jayway/jsonpath/JsonPath.java

@ -82,11 +82,11 @@ public class JsonPath {
private final static Logger log = Logger.getLogger(JsonPath.class.getName()); private final static Logger log = Logger.getLogger(JsonPath.class.getName());
private static JSONParser JSON_PARSER = new JSONParser(JsonPath.mode); private JSONParser JSON_PARSER = new JSONParser(JsonPath.mode);
private JsonPathFilterChain filters; private JsonPathFilterChain filters;
public static void setMode(int mode){ public void setMode(int mode){
if(mode != JsonPath.mode){ if(mode != JsonPath.mode){
JsonPath.mode = mode; JsonPath.mode = mode;
JSON_PARSER = new JSONParser(JsonPath.mode); JSON_PARSER = new JSONParser(JsonPath.mode);
@ -177,7 +177,7 @@ public class JsonPath {
} }
private static Object parse(String json) throws java.text.ParseException { private Object parse(String json) throws java.text.ParseException {
try { try {
return JSON_PARSER.parse(json); return JSON_PARSER.parse(json);
} catch (ParseException e) { } catch (ParseException e) {

10
json-path/src/test/java/com/jayway/jsonpath/ParserTest.java

@ -37,14 +37,16 @@ public class ParserTest {
@Test(expected = ParseException.class) @Test(expected = ParseException.class)
public void strict_mode_does_not_accept_single_quotes() throws Exception { public void strict_mode_does_not_accept_single_quotes() throws Exception {
JsonPath.setMode(JsonPath.STRICT_MODE); JsonPath path = JsonPath.compile("lhs");
JsonPath.read(SINGLE_QUOTE_JSON, "lhs"); path.setMode(JsonPath.STRICT_MODE);
path.read(SINGLE_QUOTE_JSON);
} }
@Test(expected = ParseException.class) @Test(expected = ParseException.class)
public void strict_mode_does_not_accept_no_quotes() throws Exception { public void strict_mode_does_not_accept_no_quotes() throws Exception {
JsonPath.setMode(JsonPath.STRICT_MODE); JsonPath path = JsonPath.compile("lhs");
JsonPath.read(NO_QUOTE_JSON, "lhs"); path.setMode(JsonPath.STRICT_MODE);
path.read(NO_QUOTE_JSON);
} }

Loading…
Cancel
Save