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]

Reply via email to