DanielLeens commented on PR #11162: URL: https://github.com/apache/seatunnel/pull/11162#issuecomment-6557781244
Thanks @SEZ9. I rechecked the specific F1/F2 claims against `e9c52313cfba2a64b713f743be95e80a00794072`, and I need to correct my earlier follow-up: it repeated stale source blockers. Sorry for that; no new commit is being credited with these existing protections. - **F1:** `MultiTableSink.java:441-454` deliberately preserves null for an unadvertised legacy sink, while a modern sink's explicit null capability result becomes an empty list. `MultiTableSinkWriter.java:556-595,605-614` preserves that distinction: unadvertised deprecated callbacks/no-ops retain the warning-based compatibility window. `SinkFlowLifeCycle.java:890-927` has the same legacy fallback. The earlier claim that this head always hard-fails inherited legacy no-ops was incorrect. - **F2:** SchemaChangePolicyException implements NonRetryableException, and `JobMaster.java:1347-1350` calls neverNeedRestore before propagating the task state. The guide at `schema-evolution.md:184-187` also describes Zeta non-retryable and Flink SuppressRestartsException handling. The stale claim that this revision merely tells operators to manage an endless restart loop should not remain a blocker. - **F3:** `SchemaChangePolicy.java:133-142` uses Class.getMethod, so inherited public overrides are considered. It does not unwrap arbitrary decorators or cache reflection results; those are not functionality I am claiming exists. Keep wrapper behavior explicit and treat caching as measured optional hardening rather than adding a classloader-retaining global cache. - **F4/F6:** `SeaTunnelRowDebeziumDeserializeSchema.java:159` filters the schema event before downstream policy. The guide at :154-156 says excluded events never reach policy; the MySQL guide documents include then exclude precedence. - **F5/F7/F8:** the guide distinguishes comment-only IGNORE from row-layout failure, documents the one-release legacy window/removal in the next release, and says behavior has no effect when enabled=false. A warning for an inactive option remains optional; no new implementation is being requested here. I withdraw the stale technical blockers above; I do not have a remaining source request from that earlier list. The latest remaining gates are the actual dev merge conflict, exact-head Build workflow discovery (ACTION_REQUIRED), and effective maintainer review. Resolve the content conflict while preserving both sides, then link/start the existing fork Build on the resulting head; enable workflows only if actually disabled. No unrelated dependency patch or empty trigger commit is requested. This is a correction of the unchanged-head discussion, not a new full source review or an APPROVED event. If a historical requested-changes entry still appears in GitHub, a write-capable maintainer must handle final approval/dismissal separately; Daniel has READ permission. Checked 2026-11-01T12:13:27.637340+00:00; unchanged head `e9c52313cfba2a64b713f743be95e80a00794072`, base `dev`; compare `diverged`, ahead 12 / behind 76; merge `dirty` / `DIRTY`; review decision `REVIEW_REQUIRED`. Behind/diverged is recorded independently and does not itself request a sync. Daniel has READ repository permission. -- 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]
