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]

Reply via email to