json-logic-java icon indicating copy to clipboard operation
json-logic-java copied to clipboard

`reduce` accumulator creates infinite self reference when accessed and used as result

Open myazinn opened this issue 10 months ago • 0 comments

JsonLogic:

{ "reduce" : [ [1], {"var":""}, 0] }

As Java:

String expression = "{ \"reduce\" : [ [1], {\"var\":\"\"}, 0] }";
Map<String, Integer> data = new HashMap<>();
System.out.println(new JsonLogic().apply(expression, data));

Expected:

{
    "current": 1,
    "accumulator": 0
}

Actual: {current=1.0, accumulator=(this Map)}

Accumulator references to itself which looks like an infinite map.

myazinn avatar Mar 10 '25 17:03 myazinn