awslabs / awslabs/amazon-sqs-java-messaging-lib
AcknowledgeMode enum has mutable field
- Dominant language
- Java
- Stars
- 183
- Forks
- 150
- PR merge metrics
- No merged PRs in 30d
Description
The [`com.amazon.sqs.javamessaging.acknowledge.AcknowledgeMode`](https://github.com/awslabs/amazon-sqs-java-messaging-lib/blob/master/src/main/java/com/amazon/sqs/javamessaging/acknowledge/AcknowledgeMode.java) has a private `originalAcknowledgeMode` field. Enum members are global singletons, so having a mutable private field in this case makes no sense.
Demonstration of the issue:
```
final AcknowledgeMode mode1 = AcknowledgeMode.ACK_RANGE.withOriginalAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
final AcknowledgeMode mode2 = AcknowledgeMode.ACK_RANGE.withOriginalAcknowledgeMode(Session.DUPS_OK_ACKNOWLEDGE);
assert Session.CLIENT_ACKNOWLEDGE == mode1.getOriginalAcknowledgeMode(); // Fails!
```
Contributor guide
Assessment
This issue has not been assessed yet.