SEPURI-SAI-KRISHNA commented on issue #12966:
URL: https://github.com/apache/seatunnel/issues/12966#issuecomment-6399715996
Thanks @SEZ9. Taking your two asks in order.
**1. The zero-length assertion is already in #12967.** It went in as commit
`8ad46124f`, one method on the existing test class:
```java
@Test
void deserializeDoesNotTreatAnEmptyValueAsATombstone() {
RecordingCollector collector = new RecordingCollector();
Assertions.assertThrows(
Exception.class,
() -> schema().deserialize(record(new byte[0]), collector),
"a zero length value must stay a decode error, not be read as a
tombstone");
Assertions.assertTrue(
collector.rows.isEmpty(), "a rejected record must not have
produced a row");
}
```
It asserts the contract rather than a specific exception type, because the
exception comes from the Kafka converter rather than from our code. I mutation
checked it: widening the guard to `msg.value() == null || msg.value().length ==
0` fails exactly this test and nothing else, and reverting restores 3 of 3
green.
**2. The IT is unblocked and I will do it as a follow-up.** #12927 merged on
2026-10-24 as `befdd3655`, so the emitter no longer dereferences a null value
in the skip branch.
One thing to flag before I start: there is currently no
`compatible_kafka_connect_json` coverage anywhere in `connector-kafka-e2e`, so
this is a new config and a new test method rather than an extra case on an
existing one. I will mirror the shape that #12927 already merged in
`KafkaIT.testKafkaAvroTombstoneToAssert`: its own topic so the shared broker
does not leak records between template runs, a tombstone written between two
blocks of real records, and an assert job that fails unless every real record
arrives. On top of that I will drive both `format_error_handle_way` values and
assert the offset moved past the tombstone rather than only that the row count
is right, since a replay after restart is the failure you are pointing at and a
row count alone would not catch it.
Sending that as its own PR rather than adding it to #12967, which is a
format module fix and already carries a doc commit for the Kafka source page.
That also keeps it from restarting the Kafka IT lane on a PR that is otherwise
ready.
--
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]