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

Claus Ibsen updated CAMEL-22095:
--------------------------------
    Description: 
Dear Camel Team,
 
I ran into an issue when updating a client's Camel routes to a version past 4.5 
(which does inline routes into REST routes by default):
 
AdviceWithTasks.doReplace() / getOutputs() works on a List of Outputs. To get 
this list, it looks up a node's parent field. If the Route was inlined, this 
parent field points to the original route object instead of the active one, 
because DefaultModel.addRouteDefinitions() does not update the parent fields in 
the inlining process.
As a result, AdviceWith manipulates a route that is not active anymore and has 
no effect on the route that is actually running.
 
As a workaround, inlining can be disabled, but I still feel this is a bug, or 
rather two: * 
Inlining should properly update fiels of copied nodes
 * 
AdviceWithTasks.getOutputs(ProcessorDefinition<?> node, RouteDefinition route) 
should probably get the outputs from the route rather than the indirect lookup 
via the parent in most cases

  was:
!https://ssl.gstatic.com/ui/v1/icons/mail/profile_mask_2x.png!
|
|h3. Valentin Brückel [email protected] 
[via|https://support.google.com/mail/answer/1311182?hl=en] camel.apache.org h3. 
 |
|10:57 AM (28 minutes ago)
 | |!https://mail.google.com/mail/u/0/images/cleardot.gif!
!https://mail.google.com/mail/u/0/images/cleardot.gif!
!https://mail.google.com/mail/u/0/images/cleardot.gif!|
|
|to [email protected]
!https://mail.google.com/mail/u/0/images/cleardot.gif!|
|
 
 
 
 
 
 
Dear Camel Team,
 
I ran into an issue when updating a client's Camel routes to a version past 4.5 
(which does inline routes into REST routes by default):
 
AdviceWithTasks.doReplace() / getOutputs() works on a List of Outputs. To get 
this list, it looks up a node's parent field. If the Route was inlined, this 
parent field points to the original route object instead of the active one, 
because DefaultModel.addRouteDefinitions() does not update the parent fields in 
the inlining process.
As a result, AdviceWith manipulates a route that is not active anymore and has 
no effect on the route that is actually running.
 
As a workaround, inlining can be disabled, but I still feel this is a bug, or 
rather two: * 
Inlining should properly update fiels of copied nodes
 * 
AdviceWithTasks.getOutputs(ProcessorDefinition<?> node, RouteDefinition route) 
should probably get the outputs from the route rather than the indirect lookup 
via the parent in most cases


> camel-core - Rest DSL with inlined routes does not work with AdviceWith 
> testing
> -------------------------------------------------------------------------------
>
>                 Key: CAMEL-22095
>                 URL: https://issues.apache.org/jira/browse/CAMEL-22095
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core, camel-test
>    Affects Versions: 4.8.7, 4.10.4
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 4.8.8, 4.10.5, 4.12.0
>
>
> Dear Camel Team,
>  
> I ran into an issue when updating a client's Camel routes to a version past 
> 4.5 (which does inline routes into REST routes by default):
>  
> AdviceWithTasks.doReplace() / getOutputs() works on a List of Outputs. To get 
> this list, it looks up a node's parent field. If the Route was inlined, this 
> parent field points to the original route object instead of the active one, 
> because DefaultModel.addRouteDefinitions() does not update the parent fields 
> in the inlining process.
> As a result, AdviceWith manipulates a route that is not active anymore and 
> has no effect on the route that is actually running.
>  
> As a workaround, inlining can be disabled, but I still feel this is a bug, or 
> rather two: * 
> Inlining should properly update fiels of copied nodes
>  * 
> AdviceWithTasks.getOutputs(ProcessorDefinition<?> node, RouteDefinition 
> route) should probably get the outputs from the route rather than the 
> indirect lookup via the parent in most cases



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to