amazon-sqs-java-messaging-lib icon indicating copy to clipboard operation
amazon-sqs-java-messaging-lib copied to clipboard

AcknowledgeMode enum has mutable field

Open ngaya-ll opened this issue 6 years ago • 0 comments

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!

ngaya-ll avatar May 01 '18 18:05 ngaya-ll