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

Chandra Bose Renganathan updated CAMEL-11044:
---------------------------------------------
    Description: 
EndpointHelper.resolveReferenceListParameter still sometimes return immutable 
lists.

Following is an example URL:
jetty:http://0.0.0.0:8080/entitlements/v1?matchOnUriPrefix=true&enableCORS=true&filtersRef=myFilter

Since it already has filter, when the component adds crossOriginFilter, it 
fails with UnsupportedOperationException.

  was:
EndpointHelper.resolveReferenceListParameter can sometimes return immutable 
lists, which can cause issues when other components try to add items to those 
lists.

The fact that other endpoints (like jetty-common JettyHttpComponent [enableCors 
line 279]) can add other components into the lists can cause hard to track down 
failures.

Sorry don't have a patch file, but the lines i would fix in EndpointHelper.java 
would be:

line 350: return Collections.emptyList();

line 360: return Arrays.asList(elements.size())

These should just return ArrayLists.


I know these parameters should optionally be Lists already, and this is a 
slight performance hit when starting up, but i think it's better than trying to 
figure out what went wrong when it fails.

My particular scenario was a Jetty endpoint with a filtersRef (with a single 
Filter - not a list) and then enableCORS=true.  The filtersRef returned 
Arrays.asLIst and then enableCORS tried to add an element into that list and 
crashed.


> CLONE - EndpointHelper.resolveReferenceListParameter should not return 
> immutable lists
> --------------------------------------------------------------------------------------
>
>                 Key: CAMEL-11044
>                 URL: https://issues.apache.org/jira/browse/CAMEL-11044
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.17.3
>            Reporter: Chandra Bose Renganathan
>            Assignee: Claus Ibsen
>            Priority: Minor
>
> EndpointHelper.resolveReferenceListParameter still sometimes return immutable 
> lists.
> Following is an example URL:
> jetty:http://0.0.0.0:8080/entitlements/v1?matchOnUriPrefix=true&enableCORS=true&filtersRef=myFilter
> Since it already has filter, when the component adds crossOriginFilter, it 
> fails with UnsupportedOperationException.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to