Skip to content

Commit 5250c09

Browse files
Buddhike de Silvaziyanli-amazon
authored andcommitted
Mark MessageListener as ready on prefetch start
Setting MessageListener before starting prefetch would not mark the message listener as ready. Therefore start() method should do this work in order to get pre-fetch going even when number of messages to pre-fetch is set to 0. Closes #86
1 parent 3705e55 commit 5250c09

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/main/java/com/amazon/sqs/javamessaging/SQSMessageConsumerPrefetch.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,7 @@ void start() {
552552
}
553553
synchronized (stateLock) {
554554
running = true;
555-
notifyStateChange();
555+
messageListenerReady();
556556
}
557557
}
558558

src/test/java/com/amazon/sqs/javamessaging/SQSMessageConsumerPrefetchTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1930,6 +1930,22 @@ public javax.jms.Message call() throws Exception {
19301930
consumerPrefetch.run();
19311931
}
19321932

1933+
/**
1934+
* Test SetMessageListener before starting prefetch
1935+
* Setting MessageListener before starting prefetch would not mark
1936+
* the message listener as ready. Therefore start() method should
1937+
* do this work in order to get pre-fetch going even when
1938+
* number of messages to pre-fetch is set to 0.
1939+
*/
1940+
@Test
1941+
public void testSetMessageListenerBeforeStart() {
1942+
1943+
MessageListener msgListener = mock(MessageListener.class);
1944+
consumerPrefetch.setMessageListener(msgListener);
1945+
consumerPrefetch.start();
1946+
assertEquals(1, consumerPrefetch.messagesRequested);
1947+
}
1948+
19331949
/*
19341950
* Utility functions
19351951
*/

0 commit comments

Comments
 (0)