[ 
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.

Reply via email to