amazon-sqs-java-messaging-lib
amazon-sqs-java-messaging-lib copied to clipboard
AcknowledgeMode enum has mutable field
The com.amazon.sqs.javamessaging.acknowledge.AcknowledgeMode
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!