The GitHub Actions job "Comment commands" on texera.git/main has succeeded.
Run started by GitHub user Yicong-Huang (triggered by Yicong-Huang).

Head commit for run:
a7d4bc622f639aa3445d2c199ae4bbded28b8d1c / Matthew B. <[email protected]>
fix: drop withDefaultValue from StatisticsManager so checkpoint state 
round-trips (#5150)

### What changes were proposed in this PR?
`StatisticsManager` declared its input/output stats maps as
`mutable.Map.empty.withDefaultValue((0L, 0L))`. The resulting
`Map.WithDefault` wrapper does not survive a Kryo round-trip (its inner
map deserializes as null), so
`chkpt.load(CP_STATE_KEY)` on a default-state `ControllerProcessor`
throws `KryoException: NullPointerException`, blocking
`Controller.loadFromCheckpoint` from ever rehydrating a checkpointed
controller. This PR removes the wrapper and inlines `getOrElse(portId,
(0L, 0L))` at the two write sites; behavior is unchanged.
### Any related issues, documentation, or discussions?
closes: #4686 
### How was this PR tested?   
Replaced the two existing `should be serializable` cases in
`CheckpointSpec` with full save then load round-trips (controller +
worker) that assert `restored.actorId == original.actorId`; the new
tests reproduce the original NPE on `main` and pass after the fix.
Verified locally with `sbt 'WorkflowExecutionService / Test / testOnly
org.apache.texera.amber.engine.faulttolerance.CheckpointSpec'` (3/3
pass).
### Was this PR authored or co-authored using generative AI tooling?
Co-authored with Claude Opus 4.7 in compliance with ASF

---------

Signed-off-by: Matthew B. <[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/26325822257

With regards,
GitHub Actions via GitBox

Reply via email to