1

I am always getting empty list. I have messages on queues which have not been consumed. I am passing the correct queue name.

List<TextMessage> messages = jmsTemplate.browse(destinationQueueName, (session, browser) -> {
    Enumeration<?> browserEnumeration = browser.getEnumeration();
    List<TextMessage> messageList = new ArrayList<TextMessage>();
    while (browserEnumeration.hasMoreElements()) {
        messageList.add((TextMessage) browserEnumeration.nextElement());
    }
    
    return messageList;
});
Justin Bertram
  • 29,372
  • 4
  • 21
  • 43
hello world
  • 171
  • 3
  • 13

1 Answers1

0

I can confirm the code in question is correct. I used the code successfully in Kotlin to count the number of messages in dead letter queue of an Azure service bus.

var messageCount = 0
serviceBusDeadLetterQueueJmsTemplate.browse("${destination}/\$deadletterqueue") { _, queueBrowser ->
    val browserEnumeration = queueBrowser.enumeration
    while (browserEnumeration.hasMoreElements()) {
        browserEnumeration.nextElement()
        messageCount++
    }
}
return messageCount

To find out what is wrong it can help to place a breakpoint inside the callback .