You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Rob Davies (JIRA)" <ji...@apache.org> on 2008/06/11 13:00:00 UTC

[jira] Resolved: (AMQ-1789) queue.send() throws ResourceAllocationException without checking usageManager when sendFailIfNoSpace is set

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

Rob Davies resolved AMQ-1789.
-----------------------------

    Fix Version/s: 5.1.0
       Resolution: Fixed

This is fixed in 5.1 - we are not planning patch releases for 4.x branches for apache - so an upgrade to 5.1 is recommended

> queue.send() throws ResourceAllocationException without checking usageManager when sendFailIfNoSpace is set
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-1789
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1789
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 4.1.2
>            Reporter: Mario Lukica
>            Assignee: Rob Davies
>             Fix For: 5.1.0
>
>
> org.apache.activemq.broker.region.Queue send(ConnectionContext, Message) method always throws ResourceAllocationException if sendFailIfNoSpace is set, producerFlowControl is enabled, message response is not required and network connection is not used to connect to broker. 
> In this case thread execution ends up in following code block: 
> {code}
>             ... 
>             } else { 
>                 if (usageManager.isSendFailIfNoSpace() ) { 
>                     throw new javax.jms.ResourceAllocationException("Usage Manager memory limit reached"); 
>                 } else { 
>                     while( !usageManager.waitForSpace(1000) ) { 
>                         if( context.getStopping().get() ) 
>                             throw new IOException("Connection closed, send aborted."); 
>                     } 
>                 } 
>             } 
> {code}
> ... usageManager is never checked for space prior to throwing ResourceAllocationException("Usage Manager memory limit reached"), and no message can be sent to this queue, regardless of the usageManager set on queue.

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