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:18:58 UTC

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

Stefan created CAMEL-10562:
------------------------------

             Summary: 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)