activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <jira+amq...@apache.org>
Subject [jira] Resolved: (AMQNET-154) Closing a consumer does not unblock receive call
Date Mon, 30 Mar 2009 20:13:34 GMT

     [ https://issues.apache.org/activemq/browse/AMQNET-154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Timothy Bish resolved AMQNET-154.
---------------------------------

    Resolution: Fixed

Fixed in Trunk, added a new unit test to confirm that the code behaves as expected now.  

> 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
>             Fix For: 1.1
>
>
> 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.


Mime
View raw message