[
https://issues.apache.org/jira/browse/AMQ-6273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish resolved AMQ-6273.
-------------------------------
Resolution: Fixed
Fix Version/s: 5.14.0
> ReconnectionPolicy.getNextDelay(int attempt) always returns zero when
> maxReconnectAttempts/maxInitialConnectAttempts == ReconnectionPolicy.INFINITE
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-6273
> URL: https://issues.apache.org/jira/browse/AMQ-6273
> Project: ActiveMQ
> Issue Type: Bug
> Components: Connector
> Affects Versions: 5.12.1
> Environment: WebLogic 10.3.6, HotSpot JDK 1.7
> Reporter: Ben Nisbet
> Fix For: 5.14.0
>
>
> The v.5.12.1 release of class org.apache.activemq.network.jms.JmsConnector
> contains a defect within method *private void doInitializeConnection(boolean
> local) throws Exception* that causes the *attempt* variable to
> always retain a value of zero if
> ReconnectionPolicy.maxReconnectAttempts/maxInitialConnectAttempts ==
> ReconnectionPolicy.INFINITE. (irrespective of the actual number of loop
> iterations)
> This indirectly prevents the connector from using any of the following
> ReconnectionPolicy configuration properties:
> private long initialReconnectDelay = 1000L;
> private long maximumReconnectDelay = 30000;
> private boolean useExponentialBackOff = false;
> private double backOffMultiplier = 2.0;
> The defect is triggered by inclusion of increment operator for *attempt*
> variable within do/while loop condition evaluation. Line 630 of class
> JmsConnector uses short-circuit evaluation and this prevents value from being
> incremented whenever maxRetries == INFINITE evaluates to true:
> *while ((maxRetries == INFINITE || maxRetries > ++attempt) &&
> !connectionService.isShutdown());*
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)