client setMessageListener for queue hangs when one queue contains 50+ messages 
and after broker restart setMessageListener calls for 4 queue are called
-------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: AMQ-1265
                 URL: https://issues.apache.org/activemq/browse/AMQ-1265
             Project: ActiveMQ
          Issue Type: Bug
          Components: JMS client, Transport
    Affects Versions: 4.0.2, 4.0.1, 4.1.1
         Environment: 4 queues:
SMF.OUT
ID.OUT
MD.OUT
MKLIST.OUT

client side: 
Solaris - SunOS hostname 5.10 Generic_118833-33 sun4u sparc SUNW,Sun-Fire-V215
java version:
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Server VM (build 1.5.0_11-b03, mixed mode)

server: tested with same as client and windows XP SP2
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode)

both client and server: ActiveMQ version 4.0.1 - 4.0.2 - 4.1.1


            Reporter: Daniel Bram


A JMS client connections hangs when subscribing to queue that is filled with a 
small number of messages: 50+.
The messages have been produced before shutting down the message broker 
(bin\activemq.bat process), at that time the queue consumer was not connected.

Subscribing to 4 queues produces the problem.  When the queue is cleared, the 
problem goes away (by subscribing to only one queue for example).

ActiveMQMessageConsumer.setMessageListener
freezes on line 329
session.stop();

IntelliJ debug screen: (at the next step the wait statement freezes the client 
connection).
[EMAIL PROTECTED], priority=5, in group 'main', status: 'RUNNING'
          shutdown():87, PooledTaskRunner.java
          stop():113, ActiveMQSessionExecutor.java
          stop():1469, ActiveMQSession.java
          setMessageListener():329, ActiveMQMessageConsumer.java
          registerHandler():112, AbstractJMSMessagingServiceImpl.java
          registerHandlerByAlias():134, ActiveMQMessagingServiceImpl.java
          initMessagingHandler():412, AdapterDeployer.java
          initAdapterHandlers():341, AdapterDeployer.java
          run():139, AdapterDeployer.java
          call():442, Executors.java
          run():176, FutureTask.java
          access$101():138, ScheduledThreadPoolExecutor.java
          run():237, ScheduledThreadPoolExecutor.java
          runWorker():987, ThreadPoolExecutor.java
          run():528, ThreadPoolExecutor.java
          run():595, Thread.java

When watching the debug session, the boolean variable "iterating" is set to 
true in PooledTaskRunner.java for the blocking setMessageListener call.  The 
other non blocking setMessageListeners have their iteration boolean set to 
false.  Does the fact that one queue contains message set this to true maybe ?


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to