li3zhi4 commented on PR #11633:
URL: https://github.com/apache/seatunnel/pull/11633#issuecomment-5178605254
Thanks @DanielLeens and @SEZ9 — the new head `61d05f5a34` addresses all the
round-3 findings:
**Issue 3 (shared mutable default — blocker):** ARRAY/MAP/BYTES defaults now
keep their `JsonNode` and are converted per record, so every row that takes the
default gets its own fresh instance; immutable scalars keep the pre-converted
fast path. New unit test `testMutableDefaultValueNotSharedAcrossRows` asserts
two decoded rows do not share the same array instance.
**Issue 2 (unconvertible default silently dropped under
`ignoreParseErrors`):** defaults are now validated and converted at
construction with the unwrapped converter (`createNotNullConverter`), so a bad
default always fails at job start regardless of `ignoreParseErrors` — no more
silent no-op. New unit test `testUnconvertibleDefaultFailsAtConstruction`
covers both `ignoreParseErrors` settings.
**Issue 1 (behavior change not recorded):** added entries to
`docs/{en,zh}/introduction/concepts/incompatible-changes.md` under a new `JSON
Format` section, stating plainly that a configured `defaultValue` now replaces
missing and explicitly-null JSON fields, who is affected (including
save-mode-DDL users), and the migration path (remove the default from the
source schema or move it to the sink side if `null` must be preserved).
Behavior itself stays per the accepted issue #11632 scope.
**Issue 4 (coverage + e2e ordering):** the two unit tests above cover the
riskiest new paths. The e2e now accumulates records across Awaitility retries
(KafkaConsumer is not replayable across polls — the previous `clear()` inside
the retry could never converge if the broker split the batch) and keys all
assertions off the `name` field via a `Map<String, JsonNode>` instead of list
position.
Verification: `JsonDefaultValueTest` 12/12, full `seatunnel-format-json`
module 58/58 green, `spotless:apply` clean. Branch is up to date with `dev`.
--
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]