officialasishkumar opened a new pull request, #5175:
URL: https://github.com/apache/texera/pull/5175

   ### What changes were proposed in this PR?
   
   `LogicalLink` had an asymmetric Jackson contract: frontend-saved workflow 
JSON with string-shaped operator ids (`"fromOpId": "op-A"`) deserialized 
correctly, but JSON emitted by the production `objectMapper` serialized 
`OperatorIdentity` as an object (`"fromOpId": {"id": "op-A"}`), which the only 
`@JsonCreator` path could not read back.
   
   This PR changes the Jackson creator in both `LogicalLink` models to accept 
either shape:
   
   - raw string operator ids from saved workflow JSON
   - object-shaped operator ids emitted by `objectMapper.writeValueAsString`
   
   The existing Scala string constructor is kept for direct callers, and the 
existing null/empty/self-loop validation in the Amber model continues to run 
through the primary constructor.
   
   ### Any related issues, documentation, discussions?
   
   Closes #5042.
   
   ### How was this PR tested?
   
   Validated locally with a temporary Postgres container loaded with the same 
DDL files used by CI for JOOQ generation.
   
   ```
   JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 
COURSIER_CACHE=/tmp/texera-coursier-cache 
/usr/lib/jvm/java-17-openjdk-amd64/bin/java 
-Dsbt.ivy.home=/tmp/texera-ivy-cache -Dsbt.boot.directory=/tmp/texera-sbt-boot 
-Dsbt.global.base=/tmp/texera-sbt-global -jar /tmp/sbt-launch-1.12.9.jar 
"WorkflowExecutionService/testOnly org.apache.texera.workflow.LogicalLinkSpec" 
"WorkflowCompilingService/testOnly 
org.apache.texera.service.resource.WorkflowCompilationResourceSpec"
   ```
   
   Result: `LogicalLinkSpec` 18 passed, `WorkflowCompilationResourceSpec` 3 
passed.
   
   ```
   JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 
COURSIER_CACHE=/tmp/texera-coursier-cache 
/usr/lib/jvm/java-17-openjdk-amd64/bin/java 
-Dsbt.ivy.home=/tmp/texera-ivy-cache -Dsbt.boot.directory=/tmp/texera-sbt-boot 
-Dsbt.global.base=/tmp/texera-sbt-global -jar /tmp/sbt-launch-1.12.9.jar 
scalafmtCheckAll
   ```
   
   Result: passed.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: OpenAI Codex (GPT-5)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to