awslabs / awslabs/amazon-sqs-java-extended-client-lib
Not compatible with aws-java-sdk-bundle
- Dominant language
- Java
- Stars
- 232
- Forks
- 113
- PR merge metrics
- No merged PRs in 30d
Description
`aws-java-sdk-bundle` is one of the modules in the [AWS SDK repository](https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-bundle/pom.xml). Its purpose is to shade all of the SDK's third-party dependencies such as Jackson or `org.apache.commons.logging`.
In the `AmazonSQSExtendedClient` class there is a method `getTextFromS3()`. Within that method, there is a call to `
IOUtils.closeQuietly(is, LOG);`. `LOG` is of type `org.apache.commons.logging.Log`. The problem is, if you use the shaded version of the SDK, then `IOUtils.closeQuietly` is expecting `
com.amazonaws.thirdparty.apache.logging.Log` instead, which causes it to throw a `
java.lang.NoSuchMethodError`.
I believe this problem could be solved by converting this library into multiple modules and offer a shading module with the exact same rules as `aws-java-sdk-bundle`.
Contributor guide
Research direction
Start with AmazonSQSExtendedClient.getTextFromS3() and the aws-java-sdk-bundle/pom.xml referenced in the issue. Trace the IOUtils.closeQuietly call and compare the logging types used by each shaded dependency. Done means the library works with aws-java-sdk-bundle without the reported NoSuchMethodError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, java
- Domain
- backend, cloud
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100