Aled Sage created BROOKLYN-538: ---------------------------------- Summary: IllegalArgumentException parsing (null?) json response in http feed Key: BROOKLYN-538 URL: https://issues.apache.org/jira/browse/BROOKLYN-538 Project: Brooklyn Issue Type: Bug Reporter: Aled Sage Priority: Minor
I found this exception in my log (using bleeding edge 0.12.0-SNAPSHOT): {noformat} 2017-09-20T14:44:22,427 WARN 122 o.a.b.c.f.AttributePollHandler [ger-H3hclarI-321] unable to compute VanillaSoftwareProcessImpl{id=s588wsizik}->Sensor: planeId (java.lang.String); on val=HttpToolResponse{responseCode=200} java.lang.IllegalArgumentException: json can not be null at com.jayway.jsonpath.internal.Utils.notNull(Utils.java:316) [71:com.jayway.jsonpath.json-path:2.4.0] at com.jayway.jsonpath.internal.JsonContext.<init>(JsonContext.java:47) [71:com.jayway.jsonpath.json-path:2.4.0] at com.jayway.jsonpath.internal.ParseContextImpl.parse(ParseContextImpl.java:38) [71:com.jayway.jsonpath.json-path:2.4.0] at com.jayway.jsonpath.JsonPath.read(JsonPath.java:502) [71:com.jayway.jsonpath.json-path:2.4.0] at org.apache.brooklyn.feed.http.JsonFunctions$GetPath.apply(JsonFunctions.java:320) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.feed.http.JsonFunctions$GetPath.apply(JsonFunctions.java:310) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at com.google.common.base.Functions$FunctionComposition.apply(Functions.java:216) [66:com.google.guava:18.0.0] at org.apache.brooklyn.core.feed.AttributePollHandler.transformValueOnSuccess(AttributePollHandler.java:114) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.core.feed.AttributePollHandler.onSuccess(AttributePollHandler.java:101) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.core.feed.DelegatingPollHandler.onSuccess(DelegatingPollHandler.java:51) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.core.feed.Poller$PollJob$1.run(Poller.java:79) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.core.feed.Poller$1$1.call(Poller.java:160) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.core.feed.Poller$1$1.call(Poller.java:153) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:363) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.util.core.task.BasicExecutionManager$ScheduledTaskCallable$1.call(BasicExecutionManager.java:451) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:529) [122:org.apache.brooklyn.core:0.12.0.SNAPSHOT] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?] at java.lang.Thread.run(Thread.java:748) [?:?] {noformat} I presume it came from this http feed: {noformat} - type: org.apache.brooklyn.core.sensor.http.HttpRequestSensor brooklyn.config: name: planeId period: 5s jsonPath: "$" uri: $brooklyn:formatString: - "%s/v1/server/planeid" - $brooklyn:attributeWhenReady("main.uri.public") {noformat} My guess is that the api returned {{null}}, but I've not yet tried writing a unit test to reproduce. I'd have expected this to return the json value of {{null}} if that's what the value is. -- This message was sent by Atlassian JIRA (v6.4.14#64029)