Skip to content

Commit 3d5fe16

Browse files
garyrussellartembilan
authored andcommitted
GH-1067: Fix deprecated setters
Fixes #1067 * * reset `confirmType` in setter, if appropriate * * Fix reset propagation to publisher CF
1 parent acb5683 commit 3d5fe16

File tree

2 files changed

+44
-4
lines changed

2 files changed

+44
-4
lines changed

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/connection/CachingConnectionFactory.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,14 @@ public void setPublisherReturns(boolean publisherReturns) {
406406
*/
407407
@Deprecated
408408
public void setPublisherConfirms(boolean publisherConfirms) {
409-
Assert.isTrue(!ConfirmType.SIMPLE.equals(this.confirmType),
409+
Assert.isTrue(!publisherConfirms || !ConfirmType.SIMPLE.equals(this.confirmType),
410410
"Cannot set both publisherConfirms and simplePublisherConfirms");
411-
setPublisherConfirmType(ConfirmType.CORRELATED);
411+
if (publisherConfirms) {
412+
setPublisherConfirmType(ConfirmType.CORRELATED);
413+
}
414+
else if (this.confirmType.equals(ConfirmType.CORRELATED)) {
415+
setPublisherConfirmType(ConfirmType.NONE);
416+
}
412417
}
413418

414419
/**
@@ -420,9 +425,14 @@ public void setPublisherConfirms(boolean publisherConfirms) {
420425
*/
421426
@Deprecated
422427
public void setSimplePublisherConfirms(boolean simplePublisherConfirms) {
423-
Assert.isTrue(!ConfirmType.CORRELATED.equals(this.confirmType),
428+
Assert.isTrue(!simplePublisherConfirms || !ConfirmType.CORRELATED.equals(this.confirmType),
424429
"Cannot set both publisherConfirms and simplePublisherConfirms");
425-
setPublisherConfirmType(ConfirmType.SIMPLE);
430+
if (simplePublisherConfirms) {
431+
setPublisherConfirmType(ConfirmType.SIMPLE);
432+
}
433+
else if (this.confirmType.equals(ConfirmType.SIMPLE)) {
434+
setPublisherConfirmType(ConfirmType.NONE);
435+
}
426436
}
427437

428438
@Override

spring-rabbit/src/test/java/org/springframework/amqp/rabbit/connection/CachingConnectionFactoryTests.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1846,4 +1846,34 @@ public void testShuffle() throws IOException, TimeoutException {
18461846
assertThat(firstAddress).containsExactly("host1", "host2", "host3");
18471847
}
18481848

1849+
@SuppressWarnings("deprecation")
1850+
@Test
1851+
public void confirmsSimple() {
1852+
CachingConnectionFactory cf = new CachingConnectionFactory(mock(ConnectionFactory.class));
1853+
cf.setSimplePublisherConfirms(false);
1854+
assertThat(cf.isSimplePublisherConfirms()).isFalse();
1855+
assertThat(cf.getPublisherConnectionFactory().isSimplePublisherConfirms()).isFalse();
1856+
cf.setSimplePublisherConfirms(true);
1857+
assertThat(cf.isSimplePublisherConfirms()).isTrue();
1858+
assertThat(cf.getPublisherConnectionFactory().isSimplePublisherConfirms()).isTrue();
1859+
cf.setSimplePublisherConfirms(false);
1860+
assertThat(cf.isSimplePublisherConfirms()).isFalse();
1861+
assertThat(cf.getPublisherConnectionFactory().isSimplePublisherConfirms()).isFalse();
1862+
}
1863+
1864+
@SuppressWarnings("deprecation")
1865+
@Test
1866+
public void confirmsCorrelated() {
1867+
CachingConnectionFactory cf = new CachingConnectionFactory(mock(ConnectionFactory.class));
1868+
cf.setPublisherConfirms(false);
1869+
assertThat(cf.getPublisherConnectionFactory().isPublisherConfirms()).isFalse();
1870+
assertThat(cf.isPublisherConfirms()).isFalse();
1871+
cf.setPublisherConfirms(true);
1872+
assertThat(cf.getPublisherConnectionFactory().isPublisherConfirms()).isTrue();
1873+
assertThat(cf.isPublisherConfirms()).isTrue();
1874+
cf.setPublisherConfirms(false);
1875+
assertThat(cf.isPublisherConfirms()).isFalse();
1876+
assertThat(cf.getPublisherConnectionFactory().isPublisherConfirms()).isFalse();
1877+
}
1878+
18491879
}

0 commit comments

Comments
 (0)