fix(sqs-batch-manager): use original queueUrl instead of batchKey in batch requests by anuq · Pull Request #6798 · aws/aws-sdk-java-v2

@anuq

…batch requests

When a request has an overrideConfiguration, getBatchKey() returns
queueUrl + overrideConfig.hashCode() as a composite key to correctly
group requests for batching. However, createXxxBatchRequest() was
passing this composite key as the QueueUrl in the actual SQS API call,
producing a non-existent URL like:
  https://sqs.us-west-2.amazonaws.com/123/my-queue-461286369

This causes QueueDoesNotExistException for any caller that sets an
overrideConfiguration on their request (e.g. the SQS extended client
library which appends a user-agent via overrideConfiguration).

Fix: extract queueUrl from the first request in the batch (safe because
all requests in a batch share the same queueUrl by grouping invariant)
and use that for the QueueUrl field in the batch API call.

Affected: SendMessageBatchManager, DeleteMessageBatchManager,
ChangeMessageVisibilityBatchManager.

Fixes aws#6478