Helen Huang created AMQ-4277:
--------------------------------
Summary: REST GET 204
Key: AMQ-4277
URL: https://issues.apache.org/jira/browse/AMQ-4277
Project: ActiveMQ
Issue Type: Bug
Affects Versions: 5.7.0
Environment: windows 7 and windows xp
Reporter: Helen Huang
Priority: Critical
Fix For: 5.7.0
Using 5.7 REST API I can GET a message from a topic but if a new message is
POSTed to that same topic before the GET has been reissued (less than 20ms
behind the POST and using the same session as the previous GET) the GET will
timeout with a 204 and does not retrieve the message. This may be as designed
for topics (queues are not an option) but I am just looking for confirmation. I
assumed the first GET would have provided a topic subscription and the broker
would hold a topic message for which there is a subscriber for longer than
20ms? This is not a stress test and is recreated with a simple producer and a
separate consumer usually within the first couple of message exchanges. It has
been noticed that when the topic message is POSTed without an outstanding GET
to receive it, the following exception is logged:
2013-01-22 01:09:37,484 | DEBUG | Async client internal exception occurred with
no exception listener registered: java.lang.IllegalStateException:
DISPATCHED,initial | org.apache.activemq.ActiveMQConnection | ActiveMQ Session
Task-1
java.lang.IllegalStateException: DISPATCHED,initial
at
org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:408)
at
org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:815)
at
org.apache.activemq.web.MessageServlet$Listener.onMessageAvailable(MessageServlet.java:409)
at
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1343)
at
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131)
at
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202)
at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Are there any configuration modifications available to have the topic messages
retained for at least 1 second?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira