{"action":"opened","issue":{"url":"https://api.github.com/repos/jayway/JsonPath/issues/141","labels_url":"https://api.github.com/repos/jayway/JsonPath/issues/141/labels{/name}","comments_url":"https://api.github.com/repos/jayway/JsonPath/issues/141/comments","events_url":"https://api.github.com/repos/jayway/JsonPath/issues/141/events","html_url":"https://github.com/jayway/JsonPath/issues/141","id":112045646,"number":141,"title":"Bug in more complex filters?","user":{"login":"jmken300","id":15186313,"avatar_url":"https://avatars.githubusercontent.com/u/15186313?v=3","gravatar_id":"","url":"https://api.github.com/users/jmken300","html_url":"https://github.com/jmken300","followers_url":"https://api.github.com/users/jmken300/followers","following_url":"https://api.github.com/users/jmken300/following{/other_user}","gists_url":"https://api.github.com/users/jmken300/gists{/gist_id}","starred_url":"https://api.github.com/users/jmken300/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmken300/subscriptions","organizations_url":"https://api.github.com/users/jmken300/orgs","repos_url":"https://api.github.com/users/jmken300/repos","events_url":"https://api.github.com/users/jmken300/events{/privacy}","received_events_url":"https://api.github.com/users/jmken300/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-18T22:18:33Z","updated_at":"2015-10-18T22:18:33Z","closed_at":null,"body":"Appears to be an issue with more complex filters. Would expect all test cases in below code to pass:\r\n\r\n```java\r\nimport org.junit.Test;\r\n\r\nimport static org.assertj.core.api.Assertions.assertThat;\r\n\r\npublic class JaywayBug\r\n{\r\n    @Test\r\n    public void testFilterWithOrShortCircuit1() throws Exception {\r\n        final String myJson = \"{\\\"firstname\\\":\\\"Bob\\\",\\\"surname\\\":\\\"Smith\\\",\\\"age\\\":30}\";\r\n        assertThat(SimpleJobFunctions.filter(\"$[?(@.age > 20 && (@.firstname == 'Bobb' || @.firstname == 'Jane'))].*\").call(myJson)).isFalse();\r\n    }\r\n\r\n    @Test\r\n    public void testFilterWithOrShortCircuit() throws Exception {\r\n        final String myJson = \"{\\\"firstname\\\":\\\"Bob\\\",\\\"surname\\\":\\\"Smith\\\",\\\"age\\\":30}\";\r\n        assertThat(SimpleJobFunctions.filter(\"$[?(@.age > 20 && (@.firstname == 'Bob' || @.firstname == 'Jane') && @.surname == 'Doe')].*\").call(myJson)).isFalse();\r\n    }\r\n\r\n    @Test\r\n    public void testFilterShortCircuit1() throws Exception {\r\n        final String myJson = \"{\\\"firstname\\\":\\\"Bob\\\",\\\"age\\\":20}\";\r\n        assertThat(SimpleJobFunctions.filter(\"$[?((@.firstname == 'Bob' || @.firstname == 'Jane') && (@.age > 30 && @.age < 40))].*\").call(myJson)).isFalse();\r\n    }\r\n}\r\n```"}}