Discussion:
[openjms-developer] [ openjms-Bugs-945783 ] Runtime exceptions generated by MessageQueue
SourceForge.net
2004-05-01 12:04:06 UTC
Permalink
Bugs item #945783, was opened at 2004-05-01 17:20
Message generated for change (Comment added) made by tanderson
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=945783&group_id=54559

Category: message engine
Group: v0.7.6
Status: Closed
Resolution: Fixed
Priority: 5
Submitted By: Tim Anderson (tanderson)
Assigned to: Tim Anderson (tanderson)
Summary: Runtime exceptions generated by MessageQueue
Initial Comment:
(Originally from
http://article.gmane.org/gmane.comp.java.openjms.user/
1745 ):

MessageQueue is generating
ArrayIndexOutOfBoundsException and
ConcurrentModificationExceptions as shown in the
following stack traces:

java.lang.ArrayIndexOutOfBoundsException: 373
at
java.util.AbstractCollection.toArray
(AbstractCollection.java:121)
at
org.exolab.jms.messagemgr.MessageQueue.toArray
(MessageQueue.java:119)
at
org.exolab.jms.messagemgr.MessageCache.getHandleArra
y(MessageCache.java:190)
at
org.exolab.jms.messagemgr.DestinationCache.toMessage
Array(DestinationCache.java:528)
at
org.exolab.jms.messagemgr.QueueDestinationCache.getM
essage(QueueDestinationCache.java:507)
at
org.exolab.jms.messagemgr.QueueConsumerEndpoint.deliv
erMessages(QueueConsumerEndpoint.java:164)
at
org.exolab.jms.messagemgr.ConsumerEndpoint.run
(ConsumerEndpoint.java:425)
at
org.exolab.core.threadPool.ThreadPoolWorker.runIt
(ThreadPoolWorker.java:191)
at
org.exolab.core.threadPool.ThreadPoolWorker.runWork
(ThreadPoolWorker.java:178)
at
org.exolab.core.threadPool.ThreadPoolWorker.access$000
(ThreadPoolWorker.java:67)
at
org.exolab.core.threadPool.ThreadPoolWorker$1.run
(ThreadPoolWorker.java:122)
at java.lang.Thread.run(Thread.java:536)

And

java.util.ConcurrentModificationException
at java.util.TreeMap$EntryIterator.nextEntry
(TreeMap.java:1022)
at java.util.TreeMap$KeyIterator.next
(TreeMap.java:1047)
at
java.util.AbstractCollection.toArray
(AbstractCollection.java:121)
at
org.exolab.jms.messagemgr.MessageQueue.toArray
(MessageQueue.java:119)
at
org.exolab.jms.messagemgr.MessageCache.getHandleArra
y(MessageCache.java:190)
at
org.exolab.jms.messagemgr.DestinationCache.toMessage
Array(DestinationCache.java:528)
at
org.exolab.jms.messagemgr.QueueDestinationCache.getM
essage(QueueDestinationCache.java:507)
at
org.exolab.jms.messagemgr.QueueConsumerEndpoint.deliv
erMessages(QueueConsumerEndpoint.java:164)
at
org.exolab.jms.messagemgr.ConsumerEndpoint.run
(ConsumerEndpoint.java:425)
at
org.exolab.core.threadPool.ThreadPoolWorker.runIt
(ThreadPoolWorker.java:191)
at
org.exolab.core.threadPool.ThreadPoolWorker.runWork
(ThreadPoolWorker.java:178)
at
org.exolab.core.threadPool.ThreadPoolWorker.access$000
(ThreadPoolWorker.java:67)
at
org.exolab.core.threadPool.ThreadPoolWorker$1.run
(ThreadPoolWorker.java:122)
at java.lang.Thread.run(Thread.java:536)

----------------------------------------------------------------------
Comment By: Tim Anderson (tanderson)
Date: 2004-05-01 22:04

Message:
Logged In: YES
user_id=557161

MessageQueue instances are being accessed by multiple
threads, but accesses weren't synchronized.
Fixed by adding synchronization. Fix will be available in the
0.7.6.1 release.

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=945783&group_id=54559
Loading...