Closing a consumer does not unblock receive call
------------------------------------------------
Key: AMQNET-154
URL: https://issues.apache.org/activemq/browse/AMQNET-154
Project: ActiveMQ .Net
Issue Type: Bug
Components: ActiveMQ Client
Affects Versions: 1.1
Environment: windows xp profesional
Reporter: Marco Crivellaro
Assignee: Jim Gomes
calling the close method of a cosumer while this has a pending receive call
blocked does not unblock returning null.
sample code (C#)
using System;
using Apache.NMS;
using Apache.NMS.ActiveMQ;
using System.Threading;
namespace simpleConsumer
{
class Program
{
private static bool _exit = false;
private static IMessageConsumer _consumer;
static void Main(string[] args)
{
Apache.NMS.ActiveMQ.ConnectionFactory connectionFactory = new
ConnectionFactory("tcp://172.18.141.102:61616");
Apache.NMS.IConnection connection =
connectionFactory.CreateConnection();
connection.Start();
Apache.NMS.ISession session = connection.CreateSession();
Apache.NMS.ActiveMQ.Commands.ActiveMQTopic inputTopic = new
Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("test.topic");
_consumer = session.CreateConsumer(inputTopic, "2>1");
Thread _receiveThread = new Thread(_receiveLoop);
_receiveThread.Start();
while (!_exit)
{
String command = Console.ReadLine();
if (command == "exit")
{
_exit = true;
}
}
_consumer.Close();
_receiveThread.Join();
}
private static void _receiveLoop()
{
while (!_exit)
{
Apache.NMS.ActiveMQ.Commands.ActiveMQTextMessage message =
(Apache.NMS.ActiveMQ.Commands.ActiveMQTextMessage)_consumer.Receive();
Console.WriteLine(message.Content.ToString() + "
[looping...]");
}
}
}
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.