Browse Source

Merge c258e6a5c5 into 45333e0a31

pull/909/merge
Dat Vu 1 year ago committed by GitHub
parent
commit
3263c3a058
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 8
      json-path/src/main/java/com/jayway/jsonpath/JsonPath.java
  2. 25
      json-path/src/test/java/com/jayway/jsonpath/Issue_908.java

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

@ -168,7 +168,7 @@ public class JsonPath {
boolean optAsPathList = configuration.containsOption(AS_PATH_LIST); boolean optAsPathList = configuration.containsOption(AS_PATH_LIST);
boolean optAlwaysReturnList = configuration.containsOption(Option.ALWAYS_RETURN_LIST); boolean optAlwaysReturnList = configuration.containsOption(Option.ALWAYS_RETURN_LIST);
boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS); boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS);
try {
if (path.isFunctionPath()) { if (path.isFunctionPath()) {
if (optAsPathList || optAlwaysReturnList) { if (optAsPathList || optAlwaysReturnList) {
if (optSuppressExceptions) { if (optSuppressExceptions) {
@ -205,6 +205,12 @@ public class JsonPath {
return (T) res; return (T) res;
} }
} }
} catch (JsonPathException ex) {
if (optSuppressExceptions) {
return (T) configuration.jsonProvider().createArray();
}
throw ex;
}
} }
/** /**

25
json-path/src/test/java/com/jayway/jsonpath/Issue_908.java

@ -0,0 +1,25 @@
package com.jayway.jsonpath;
import org.junit.Test;
public class Issue_908 {
@Test(expected = InvalidPathException.class)
public void test_when_current_context_is_null() {
JsonPath
.parse("{\"test\" : null }")
.read("$.test[?(@ != null)]");
}
@Test
public void test_suppress_exception_when_current_context_is_null() {
Object rs = JsonPath.using(Configuration.builder()
.options(Option.SUPPRESS_EXCEPTIONS).build())
.parse("{\"test\" : null }")
.read("$.test[?(@ != null)]");
assert(rs.toString().equals("[]"));
}
}
Loading…
Cancel
Save