You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Colin MacNaughton (JIRA)" <ji...@apache.org> on 2009/02/20 21:25:59 UTC

[jira] Updated: (AMQ-2132) java.lang.IndexOutOfBoundsException during dispatcher shutdown coming out of FlowController.

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

Colin MacNaughton updated AMQ-2132:
-----------------------------------

    Attachment: AMQ-2132patch.txt

Patch attached. 

Changed IDispatcher to throw RejectedExecutionException when a request for dispatch is made when it is shutdown. Also modified DispatchContext.requestDispatch to do the same. Modified FlowController to catch and eat this exception. Also changed AbstractPooledDispatcher to keep better track of it's open dispatchers to avoid the ArrayIndexOutOfBounds exception, and changed MockBrokerTest to immediately start the dispatcher after its creation

There are still issues with the mock broker test shutdown sequence that will need to be addressed, but this should 

> java.lang.IndexOutOfBoundsException during dispatcher shutdown coming out of FlowController. 
> ---------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2132
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2132
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: incubation
>            Reporter: Colin MacNaughton
>             Fix For: incubation
>
>         Attachments: AMQ-2132patch.txt
>
>
> RemoteConnection error: java.lang.IndexOutOfBoundsException: Index: 7, Size: 3
>   at java.util.ArrayList.RangeCheck(ArrayList.java:546)
>   at java.util.ArrayList.get(ArrayList.java:321)
>   at org.apache.activemq.dispatch.AbstractPooledDispatcher.chooseDispatcher(AbstractPooledDispatcher.java:132)
>   at org.apache.activemq.dispatch.PriorityDispatcher$2$1.execute(PriorityDispatcher.java:89)
>   at org.apache.activemq.flow.FlowController.checkUnblockSources(FlowController.java:424)
>   at org.apache.activemq.flow.FlowController.dispatchOverflowQueue(FlowController.java:341)
>   at org.apache.activemq.flow.FlowController.onUnthrottled(FlowController.java:300)
>   at org.apache.activemq.flow.FlowController$1.onUnthrottled(FlowController.java:83)
>   at org.apache.activemq.flow.AbstractLimiter.notifyUnThrottleListeners(AbstractLimiter.java:41)
>   at org.apache.activemq.flow.SizeLimiter.remove(SizeLimiter.java:68)
>   at org.apache.activemq.flow.RemoteConnection$WindowLimiter.remove(RemoteConnection.java:308)
>   at org.apache.activemq.flow.RemoteConnection$WindowLimiter.onProtocolMessage(RemoteConnection.java:323)
>   at org.apache.activemq.flow.RemoteConnection.onCommand(RemoteConnection.java:92)
>   at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>   at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
>   at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
>   at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:234)
>   at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:216)
>   at java.lang.Thread.run(Thread.java:613)

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