-
Notifications
You must be signed in to change notification settings - Fork 81
Description
Current Behavior
Replacing the JsonPathPipe with a DataSonnetPipe doing the exact same thing functionally fixes the issue. Using 'jsonPathExpression' on a Param seems to work fine aswell, so the issue seems to be specific to DataSonnetPipe. Perhaps the JsonPathPipe does not set a mimeType?
During testing it had some issues with incoherent results. It would seem like the same solution would sometimes work and the exact same solution would not work anymore in some other runs. This is probably a FF reload or Docker sync being weird, but mentioning it anyways.
Expected Behavior
JsonPathPipe jsonPathExpression yielding a JSON object should be interpreted as a JSON object when used with DataSonnetPipe.
Environment Information
FF! 9.4.0-20251122.042330: Eekels-Webhook-API 1.0.0
Running on 6fff822edaf8 using Apache Tomcat/10.1.49
Java Version: OpenJDK Runtime Environment (21.0.9+10-LTS)
Heap size: 223.1 MiB, total JVM memory: 328.0 MiB
Free memory: 104.9 MiB, max memory: 3.8 GiB
Free disk space: 969.4 GiB, total disk space: 1006.9 GiB
Up since: 2025-11-24 14:40:23, timezone: Etc/UTC
Steps To Reproduce
model/jsonnet/JsonApiResourceIdentifier.jsonnet:
{
"id": payload.ID default "",
"type": type,
"meta": meta default {}
}Configuration
<JsonPathPipe
name="UnwrapRowset"
jsonPathExpression="$.rowset[0]"/>
<DataSonnetPipe
name="CreateJsonApiResourceIdentifier"
preserveInput="true"
styleSheetName="model/jsonnet/JsonApiResourceIdentifier.jsonnet"
storeResultInSessionKey="JsonApiResourceIdentifier">
<Param name="type" value="webhook" />
</DataSonnetPipe>Input
{"rowset":[{"ID":"ac1d0002-70b8233f_19ab6e0d36f_-7fff","IDEMPOTENCYKEY":"511c09f9-50de-44f5-8c0d-e876f0cc3864","EVENTTYPES":""nl.eekels.crm.opportunity.stage_changed.v1","nl.eekels.crm.opportunity.stage_changed.v2"","NAME":"This is a testname","NOTIFICATIONURL":"https://notification-endpoint.localtest.me/callback","SIGNATUREKEY":"ISdFRUpWCLerN5ZclwvEVAhmqYc825Tu","STATUS":"active"}]}
What database are you using?
No response
What browsers are you seeing the problem on?
No response
Relevant Log Output
<errorMessage timestamp="Mon Nov 24 17:33:34 UTC 2025" originator="IAF 9.4.0-20251122.042330" message="DataSonnetPipe [CreateJsonApiAttributes] msgId [testmessage-983350f70b4b-ac1d0002--5d569a14_19ab6ed935e_-8000]: error during pipeline processing: Pipe [CreateJsonApiAttributes] error transforming input: (IllegalArgumentException) Problem executing script: com.datasonnet.jsonnet.Error: attempted to index a string with string ID at line 4 column 30 of the transformation ">
<location class="org.frankframework.pipes.DataSonnetPipe" name="CreateJsonApiAttributes"/>
<details>org.frankframework.core.ListenerException: Pipe [CreateJsonApiAttributes] error transforming input: (IllegalArgumentException) Problem executing script: com.datasonnet.jsonnet.Error: attempted to index a string with string ID
at line 4 column 30 of the transformation
at org.frankframework.core.Adapter.processMessageWithExceptions(Adapter.java:834)
at org.frankframework.core.Adapter.processMessageDirect(Adapter.java:759)
at org.frankframework.management.bus.endpoints.TestPipeline.processMessage(TestPipeline.java:142)
at org.frankframework.management.bus.endpoints.TestPipeline.runTestPipeline(TestPipeline.java:113)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.proceed(AuthorizationManagerBeforeMethodInterceptor.java:268)
at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.attemptAuthorization(AuthorizationManagerBeforeMethodInterceptor.java:263)
at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:196)
at org.springframework.security.config.annotation.method.configuration.DeferringMethodInterceptor.invoke(DeferringMethodInterceptor.java:44)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.proceed(AuthorizationManagerBeforeMethodInterceptor.java:268)
at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.attemptAuthorization(AuthorizationManagerBeforeMethodInterceptor.java:263)
at org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:196)
at org.springframework.security.config.annotation.method.configuration.DeferringMethodInterceptor.invoke(DeferringMethodInterceptor.java:44)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728)
at org.frankframework.management.bus.endpoints.TestPipeline$$SpringCGLIB$$0.runTestPipeline(<generated>)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:169)
at org.springframework.integration.handler.support.IntegrationInvocableHandlerMethod.doInvoke(IntegrationInvocableHandlerMethod.java:45)
at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:119)
at org.springframework.integration.handler.support.MessagingMethodInvokerHelper$HandlerMethod.invoke(MessagingMethodInvokerHelper.java:1089)
at org.springframework.integration.handler.support.MessagingMethodInvokerHelper.invokeHandlerMethod(MessagingMethodInvokerHelper.java:573)
at org.springframework.integration.handler.support.MessagingMethodInvokerHelper.processInternal(MessagingMethodInvokerHelper.java:486)
at org.springframework.integration.handler.support.MessagingMethodInvokerHelper.process(MessagingMethodInvokerHelper.java:361)Anything else?
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status