CryoThrust opened a new pull request, #12748:
URL: https://github.com/apache/seatunnel/pull/12748
### Purpose of this pull request
Fixes #12747.
`TaskOperation` used Hazelcast's typed `readObject(TaskLocation.class)`
overload, which overrides construction rather than validating the wire class
ID. A different class from the same factory can therefore be consumed as a
TaskLocation if its field bytes fit. `AssignSplitOperation` used an unchecked
assignment, producing a ClassCastException for another wire type.
Both read sites now deserialize the wire-selected object and reject null or
a non-TaskLocation with an IOException identifying the expected and decoded
types. Serializer IDs and valid field layouts are unchanged. This is separate
from the managed-runtime change in #11557.
### Does this PR introduce _any_ user-facing change?
Malformed task-location payloads now fail explicitly at the read site. Valid
payloads, public APIs, configuration and dependencies are unchanged.
### How was this patch tested?
```sh
./mvnw -pl seatunnel-engine/seatunnel-engine-server spotless:check
./mvnw -pl seatunnel-engine/seatunnel-engine-server \
-Dtest=TaskOperationSerializationTest,CleanLogOperationSerializationTest,RecordSerializerTest,CheckpointSerializeTest,ResourceDataSerializerHookTest
test
./mvnw -pl seatunnel-engine/seatunnel-engine-server -DskipTests verify
```
JDK 11: 25 tests, zero failures/errors, one existing skipped checkpoint
test. The six new checks exercise Hazelcast serialization, including a
same-factory/different-class collision, null rejection, and byte-identical
valid round trips for both paths. Before the fix, four of those six fail; after
the fix, all six pass. Formatting, Checkstyle and module packaging/verify pass.
Local commands skipped the unchanged UI build. Reactor dependencies were
already installed; the full engine suite and live-cluster E2E were not run.
### Check list
* No new dependencies, connector, configuration or valid-wire
incompatibility.
* No new feature documentation or migration guide required.
--
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]