You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Dirk Reske (JIRA)" <ji...@apache.org> on 2015/04/20 11:14:58 UTC

[jira] [Updated] (CAMEL-8673) ConcurrentModificationException when creating dynamic routes

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

Dirk Reske updated CAMEL-8673:
------------------------------
    Description: 
This Ticket refers to CAMEL-7836.
The fix seems to be slightly wrong. (We still geht the ConcurrentModificationException)

The cause seems to be in removeRouteCollection and addRouteCollection. See here:
{code}
void removeRouteCollection(Collection<Route> routes) {
        synchronized (routes) {
            this.routes.removeAll(routes);
        }
}
{code}
Here the code synchronizes on the routes parameter, but getRoutes synchronizes on this.routes. (the same in addRouteCollection)

  was:
This Ticket refers to CAMEL-7836.
The fix seems to be slightly wrong. (We still geht the ConcurrentModificationException)

The cause seems to be in removeRouteCollection and addRouteCollection. See here:
void removeRouteCollection(Collection<Route> routes) {
        synchronized (routes) {
            this.routes.removeAll(routes);
        }
}

Here the code synchronizes on the routes parameter, but getRoutes synchronizes on this.routes. (the same in addRouteCollection)


> ConcurrentModificationException when creating dynamic routes
> ------------------------------------------------------------
>
>                 Key: CAMEL-8673
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8673
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.14.1
>            Reporter: Dirk Reske
>            Priority: Minor
>
> This Ticket refers to CAMEL-7836.
> The fix seems to be slightly wrong. (We still geht the ConcurrentModificationException)
> The cause seems to be in removeRouteCollection and addRouteCollection. See here:
> {code}
> void removeRouteCollection(Collection<Route> routes) {
>         synchronized (routes) {
>             this.routes.removeAll(routes);
>         }
> }
> {code}
> Here the code synchronizes on the routes parameter, but getRoutes synchronizes on this.routes. (the same in addRouteCollection)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)