Apache Kafka · Kafka Connect · open
PR #22534 — KAFKA-20658: Cast SMT honors ByteBuffer remaining bytes
Kafka Connect의 Cast Single Message Transformation에서 BYTES → BYTES 변환 시 ByteBuffer.array()를 그대로 가져다 쓰던 패턴을 position()/remaining() 기반으로 수정. 슬라이스 버퍼에서도 원본 값을 정확하게 전달.
증상
Cast SMT를 BYTES 필드에 적용하는 컨버터 체인에서, 슬라이스/duplicate된 ByteBuffer가 들어오면 자기 영역 밖 데이터까지 함께 cast 결과로 흘러나가는 케이스가 있었습니다. 결과: 다운스트림 컨버터/싱크가 잘못된 길이의 BYTES를 받음.
수정
Cast 경로의 BYTES 처리에서 buffer.array()를 position()/remaining()로 교체. KAFKA-20656/20657/20666과 같은 계열.