goutamadwant opened a new pull request, #12038:
URL: https://github.com/apache/seatunnel/pull/12038

   ### Purpose of this pull request
   
   Closes #12036.
   
   - Make `AmazonSqsDeserializer` fail fast with a connector exception when the 
configured deserializer throws `IOException` or returns `null`. This prevents 
the source reader from collecting or deleting an unreadable SQS message.
   - Add focused reader regression coverage for exception and null results, 
successful reads with deletion enabled and disabled, collector failure, and a 
mixed batch that stops at the failed message.
   
   The public `SeaTunnelRowDeserializer` signature is unchanged. The fix uses 
an unchecked connector exception so existing callers and implementations do not 
acquire a new checked-exception requirement.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes.
   
   With `delete_message = true`, an unreadable SQS message previously could be 
deleted after deserialization silently produced `null`. The source now fails 
the poll and leaves that message in SQS for its visibility-timeout retry or 
dead-letter-queue policy.
   
   Valid messages and the default `delete_message = false` behavior are 
unchanged.
   
   ### How was this patch tested?
   
   - Focused `AmazonSqsSourceReaderTest` on Java 8: 6 tests passed.
   - Focused `AmazonSqsSourceReaderTest` on Java 11: 6 tests passed.
   - Full `connector-amazonsqs` unit-test module on Java 8: 7 tests passed.
   - Full `connector-amazonsqs` unit-test module on Java 11: 7 tests passed.
   - Repository-wide `./mvnw spotless:apply`: passed across 287 modules.
   - `git diff --check`: passed.
   
   The tests use a deterministic in-memory SQS client boundary and make no 
network calls.
   
   A repository-wide Java 11 `./mvnw -q -DskipTests verify` progressed through 
the connector, translation, starter, and engine modules. It stopped in the 
unrelated `seatunnel-engine-ui` module because its npm process-tree helper 
could not spawn a child process (`spawn EPERM`). This PR has no UI changes, and 
the standalone Engine UI verification passed outside that restricted process 
environment.
   
   ### Check list
   
   * [x] No new Jar binary package is added.
   * [x] The existing English and Chinese connector documentation already state 
that deletion follows successful deserialization, so no documentation change is 
needed.
   * [x] No incompatible API, configuration, or default-value change is 
introduced, so `incompatible-changes.md` does not need an update.
   * [x] This is a fix to an existing connector. Plugin mapping, distribution 
POM, CI label, and plugin configuration are unchanged; focused regression tests 
are included.
   


-- 
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