Skip to content

Commit 9da318a

Browse files
committed
Assert JmsActivationSpecConfig.setAcknowledgeMode() values
See gh-30851
1 parent b45bfca commit 9da318a

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsActivationSpecConfig.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public void setAcknowledgeModeName(String constantName) {
206206
Assert.hasText(constantName, "'constantName' must not be null or blank");
207207
Integer acknowledgeMode = sessionConstants.get(constantName);
208208
Assert.notNull(acknowledgeMode, "Only acknowledge mode constants allowed");
209-
setAcknowledgeMode(acknowledgeMode);
209+
this.acknowledgeMode = acknowledgeMode;
210210
}
211211

212212
/**
@@ -217,6 +217,8 @@ public void setAcknowledgeModeName(String constantName) {
217217
* @see jakarta.jms.Session#SESSION_TRANSACTED
218218
*/
219219
public void setAcknowledgeMode(int acknowledgeMode) {
220+
Assert.isTrue(sessionConstants.containsValue(acknowledgeMode),
221+
"Only values of acknowledge mode constants allowed");
220222
this.acknowledgeMode = acknowledgeMode;
221223
}
222224

spring-jms/src/test/java/org/springframework/jms/listener/endpoint/JmsActivationSpecConfigTests.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,23 @@ void setAcknowledgeModeNameToAllSupportedValues() {
6565
assertThat(uniqueValues).hasSize(4);
6666
}
6767

68+
@Test
69+
void setSessionAcknowledgeMode() {
70+
assertThatIllegalArgumentException().isThrownBy(() -> specConfig.setAcknowledgeMode(999));
71+
72+
specConfig.setAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
73+
assertThat(specConfig.getAcknowledgeMode()).isEqualTo(Session.AUTO_ACKNOWLEDGE);
74+
75+
specConfig.setAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
76+
assertThat(specConfig.getAcknowledgeMode()).isEqualTo(Session.CLIENT_ACKNOWLEDGE);
77+
78+
specConfig.setAcknowledgeMode(Session.DUPS_OK_ACKNOWLEDGE);
79+
assertThat(specConfig.getAcknowledgeMode()).isEqualTo(Session.DUPS_OK_ACKNOWLEDGE);
80+
81+
specConfig.setAcknowledgeMode(Session.SESSION_TRANSACTED);
82+
assertThat(specConfig.getAcknowledgeMode()).isEqualTo(Session.SESSION_TRANSACTED);
83+
}
84+
6885

6986
private static Stream<String> streamAcknowledgeModeConstants() {
7087
return Arrays.stream(Session.class.getFields())

0 commit comments

Comments
 (0)