使用Java SDK从空Azure ServiceBus队列接收时接收非空消息

时间:2013-03-22 18:58:16

标签: java azure servicebus azureservicebus azure-servicebus-queues

使用Java SDK(0.4.1)从SB队列检索消息时,即使有问题的队列为空,也会返回非空ReceiveQueueMessageResult。在该结果上调用getValue()将返回非空BrokeredMessage。我该如何判断我是否在空队列中调用了接收?显然,在分布式并发系统中查询大小不是一种选择。

我正在使用ReceiveAndDelete模式并且新创建了队列,所以我知道它是空的。

根据文档,对API的底层调用应该返回一个204的StatusCode。我找不到任何方法来在返回的Result或Message中访问该代码。

1 个答案:

答案 0 :(得分:1)

我们已经记录了这个问题,我们正在努力解决这个问题。顺便说一下,Windows Azure SDK for Java是开源的,如果您愿意放弃MSFT的版权,您甚至可以提交自己的修复程序。源代码可以找到https://github.com/WindowsAzure/azure-sdk-for-java