You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2013/11/21 20:37:35 UTC

[jira] [Commented] (CAMEL-6988) 2.12.1 caches groovy call - resulting with previous caller state

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

Claus Ibsen commented on CAMEL-6988:
------------------------------------

CAMEL-6340 was also introduced in Camel 2.11.1. Are you sure its that version? Can you double check.


> 2.12.1 caches groovy call - resulting with previous caller state
> ----------------------------------------------------------------
>
>                 Key: CAMEL-6988
>                 URL: https://issues.apache.org/jira/browse/CAMEL-6988
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-groovy
>    Affects Versions: 2.12.1
>         Environment: same results using java 7 on osx, ubuntu, and windoze
>            Reporter: Terry Walters
>
> 2.12.1
> Works
> {code}
>         <simple>"${body.subOrderName}Endpoint"</simple>
> {code}
> Fails 
> {code}
>          <groovy>"${request.body.subOrderName}Endpoint"</groovy>
> {code}
> 2.11.1
> Works
> {code}
>         <simple>"${body.subOrderName}Endpoint"</simple>
> {code}
> Works
> {code}
>         <groovy>"${request.body.subOrderName}Endpoint"</groovy>
> {code}
> *Fails by returning a previous calls result for subOrderName. 
> To reproduce you must make several calls in a timely manner with different bean data (OGNL/subOrderName).
> Route:
> {code}
> ...
> <setHeader headerName="RSSX_ORDER_ROUTING_SLIP">
> <groovy>return "${request.body.subOrderName}Endpoint"</groovy>
> </setHeader>
> <!-- Route the order by the routing slip header -->
> <routingSlip>
> <header>RSSX_ORDER_ROUTING_SLIP</header>
> </routingSlip>
> ...
> {code}
> Log:
> 1st execution
> Before set header:    UpdatePortIn
> After set header:   RSSX_ORDER_ROUTING_SLIP=UpdatePortInEndpoint
> 2nd execution (in a timely manner – exposing a LRU Cache issue?)
> Before set header: ResellerAddSubscriberPortIn
> After set header:    RSSX_ORDER_ROUTING_SLIP=UpdatePortInEndpoint
> Same logic works in 2.11.1
> Additionally this does not appear OGNL related:
> I just ran into the case where       
> {code}
> <setHeader headerName="RSSX_ORDER_ROUTING_SLIP">
>         <groovy>"${request.body.getSubOrderName()}Endpoint"</groovy>
>       </setHeader>
> {code}
> returns the cached subOrderName from the previous transaction
> So this appears to be isolated to the <groovy> component changes (LRU Cache?) that were introduced in 2.12.1



--
This message was sent by Atlassian JIRA
(v6.1#6144)