You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Stefan (JIRA)" <ji...@apache.org> on 2016/12/06 16:24:58 UTC

[jira] [Commented] (CAMEL-10562) UnsupportedOperationException in DefaultCamelContext#safelyStartRouteServices

    [ https://issues.apache.org/jira/browse/CAMEL-10562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15725955#comment-15725955 ] 

Stefan commented on CAMEL-10562:
--------------------------------

This issue is a blocker in our environment, because we can not simply change the JRE in use on our servers. So I set the priority only to critical because of the outdated affected version of Java and the because I'm not sure, if other JREs, i.e. the IBM JRE, are affected, too.

I will add a pull request later. Currently I'm not able to clone the git repo :(

> UnsupportedOperationException in DefaultCamelContext#safelyStartRouteServices
> -----------------------------------------------------------------------------
>
>                 Key: CAMEL-10562
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10562
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.18.0, 2.18.1
>         Environment: Oracle JDK 1.8.0_(<20)
>            Reporter: Stefan
>            Priority: Critical
>
> DefaultCamelContext#safelyStartRouteServices the following code is called:
> {code}
> Collections.sort(startupListeners, new OrderedComparator());
> {code}
> {{startupListeners}} is a {{CopyOnWriteArrayList}}.
> In the specification of Collections.sort it is stated, that an UnsupportedOperationException is thrown if the collections listiterator doesn't support the set-operation.
> Sadly, the documentation of CopyOnWriteArrayList#listIterator states, that the listiterator doesn't support this operation.
> As expected in this szenario, the UnsupportedOperationException is thrown during startup of the camel context if an Oracle JDK 1.8.0 with patchlevel lower than 20 is used.
> In 1.8.0_20 the operation Collections#sort(List,Comparator) is rewritten to delegate to List#sort(Comparator) so it doesn't matter anymore if the lists listIterator supports the set-operation.
> The issue can trivially been fixed by replacing the line by
> {code}
> startupListeners.sort(new OrderedComparator());
> {code}



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