Skip to content

Commit 507c2f2

Browse files
committed
change test double call raises to double call returns null
1 parent 9e2fe2b commit 507c2f2

1 file changed

Lines changed: 18 additions & 20 deletions

File tree

src/test/java/software/amazon/awssdk/crt/test/Mqtt5ClientTest.java

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2801,7 +2801,7 @@ public void ManualPuback_Invoke() throws Exception {
28012801
CrtResource.waitForNoResources();
28022802
}
28032803

2804-
private void doManualPublishAcknowledgement_AcquireDoubleCallRaisesTest() {
2804+
private void doManualPublishAcknowledgement_AcquireDoubleCallReturnsNullTest() {
28052805
try (TlsContextOptions tlsOptions = TlsContextOptions.createWithMtlsFromPath(
28062806
AWS_TEST_MQTT5_IOT_CORE_RSA_CERT, AWS_TEST_MQTT5_IOT_CORE_RSA_KEY);
28072807
TlsContext tlsContext = new TlsContext(tlsOptions)) {
@@ -2820,22 +2820,20 @@ private void doManualPublishAcknowledgement_AcquireDoubleCallRaisesTest() {
28202820
builder.withPublishEvents(new Mqtt5ClientOptions.PublishEvents() {
28212821
@Override
28222822
public void onMessageReceived(Mqtt5Client client, PublishReturn publishReturn) {
2823-
try {
2824-
// First call should succeed
2825-
Mqtt5PublishAcknowledgementControlHandle handle = publishReturn.acquirePublishAcknowledgementControl();
2826-
// Second call on the same message should throw IllegalStateException
2827-
try {
2828-
publishReturn.acquirePublishAcknowledgementControl();
2829-
resultFuture.complete("no_error"); // Should not reach here
2830-
} catch (IllegalStateException ex) {
2831-
resultFuture.complete("double_call_raised");
2832-
} catch (Exception ex) {
2833-
resultFuture.complete("unexpected_error: " + ex.getMessage());
2834-
}
2835-
// handle is valid but we don't invoke it here; let it be GC'd
2836-
} catch (Exception ex) {
2837-
resultFuture.complete("first_call_failed: " + ex.getMessage());
2823+
// First call should succeed and return a non-null handle
2824+
Mqtt5PublishAcknowledgementControlHandle handle = publishReturn.acquirePublishAcknowledgementControl();
2825+
if (handle == null) {
2826+
resultFuture.complete("first_call_returned_null");
2827+
return;
2828+
}
2829+
// Second call on the same message should return null (controlId was zeroed out)
2830+
Mqtt5PublishAcknowledgementControlHandle handle2 = publishReturn.acquirePublishAcknowledgementControl();
2831+
if (handle2 == null) {
2832+
resultFuture.complete("double_call_returned_null");
2833+
} else {
2834+
resultFuture.complete("double_call_returned_non_null");
28382835
}
2836+
// handle is valid but we don't invoke it here; let it be GC'd
28392837
}
28402838
});
28412839

@@ -2850,8 +2848,8 @@ public void onMessageReceived(Mqtt5Client client, PublishReturn publishReturn) {
28502848
client.publish(publishBuilder.build()).get(OPERATION_TIMEOUT_TIME, TimeUnit.SECONDS);
28512849

28522850
String result = resultFuture.get(OPERATION_TIMEOUT_TIME, TimeUnit.SECONDS);
2853-
assertEquals("Expected IllegalStateException on double-call, got: " + result,
2854-
"double_call_raised", result);
2851+
assertEquals("Expected null on double-call, got: " + result,
2852+
"double_call_returned_null", result);
28552853

28562854
client.stop();
28572855
events.stopFuture.get(OPERATION_TIMEOUT_TIME, TimeUnit.SECONDS);
@@ -2861,13 +2859,13 @@ public void onMessageReceived(Mqtt5Client client, PublishReturn publishReturn) {
28612859
}
28622860
}
28632861

2864-
/* Manual publish acknowledgement double-call test: calling acquirePublishAcknowledgementControl() twice raises IllegalStateException */
2862+
/* Manual publish acknowledgement double-call test: calling acquirePublishAcknowledgementControl() twice returns null on the second call */
28652863
@Test
28662864
public void ManualPuback_AcquireDoubleCallRaises() throws Exception {
28672865
skipIfNetworkUnavailable();
28682866
Assume.assumeNotNull(AWS_TEST_MQTT5_IOT_CORE_HOST, AWS_TEST_MQTT5_IOT_CORE_RSA_CERT, AWS_TEST_MQTT5_IOT_CORE_RSA_KEY);
28692867

2870-
TestUtils.doRetryableTest(this::doManualPublishAcknowledgement_AcquireDoubleCallRaisesTest, TestUtils::isRetryableTimeout, MAX_TEST_RETRIES, TEST_RETRY_SLEEP_MILLIS);
2868+
TestUtils.doRetryableTest(this::doManualPublishAcknowledgement_AcquireDoubleCallReturnsNullTest, TestUtils::isRetryableTimeout, MAX_TEST_RETRIES, TEST_RETRY_SLEEP_MILLIS);
28712869

28722870
CrtResource.waitForNoResources();
28732871
}

0 commit comments

Comments
 (0)