Troubleshooting at least shows that the element was missing in the input message. Normally this would simply throw an error about a missing field.
It looks as if it ends up in an endless loop trying to evaluate the condition in the filter and/or retrieving the value to apply the condition to. The line causing the issue is "CmId": std.filter(function(x) x['@name'] == 'externalid', payload["ProcessHumanResourceRequest"]["Assignment"]["ReferenceInformation"]["StaffingCustomerId"]["IdValue"])[0]["$"] in the AfasContract.libsonnet file.
Adding default "" at the end (syntactic sugar for try/catch) prevents the issue from occurring somehow.
Copying the line to the main jsonnet file does not trigger the issue. Simply gives an error message about "Assignment" field not existing in the input.
Copying the createAfasContract function from the libsonnet file to the jsonnet file as local function does not trigger the issue either.
I suspect that the issue is vaguely in the direction of a difference in the context that is available the main jsonnet file vs. the context available to imported content. Or maybe function arguments behave differently local vs local from import For some reason the payload and variables provided via params are not available to libsonnet file, unless they are passed via a function. At the same time jsonnet documentation claims that jsonnet does not work with function or variable references and simply copies everything inline.
Copied from frankframework/frankframework#11333.
Log file:
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:51)
at com.datasonnet.jsonnet.Evaluator.$anonfun$visitObjBody$5(Evaluator.scala:491)
at com.datasonnet.jsonnet.Val$Obj.valueRaw(Val.scala:224)
at com.datasonnet.jsonnet.Val$Obj.value(Val.scala:171)
at com.datasonnet.jsonnet.Evaluator.visitSelect(Evaluator.scala:265)
at com.datasonnet.jsonnet.Evaluator.visitExpr(Evaluator.scala:99)
Troubleshooting at least shows that the element was missing in the input message. Normally this would simply throw an error about a missing field.
It looks as if it ends up in an endless loop trying to evaluate the condition in the filter and/or retrieving the value to apply the condition to. The line causing the issue is "CmId": std.filter(function(x) x['@name'] == 'externalid', payload["ProcessHumanResourceRequest"]["Assignment"]["ReferenceInformation"]["StaffingCustomerId"]["IdValue"])[0]["$"] in the AfasContract.libsonnet file.
Adding default "" at the end (syntactic sugar for try/catch) prevents the issue from occurring somehow.
Copying the line to the main jsonnet file does not trigger the issue. Simply gives an error message about "Assignment" field not existing in the input.
Copying the createAfasContract function from the libsonnet file to the jsonnet file as local function does not trigger the issue either.
I suspect that the issue is vaguely in the direction of a difference in the context that is available the main jsonnet file vs. the context available to imported content. Or maybe function arguments behave differently local vs local from import For some reason the payload and variables provided via params are not available to libsonnet file, unless they are passed via a function. At the same time jsonnet documentation claims that jsonnet does not work with function or variable references and simply copies everything inline.
Copied from frankframework/frankframework#11333.
Log file: