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

Nenad Nesovanovic commented on CAMEL-14969:
-------------------------------------------

Stack traces of the debug points are below

1. RouteDefinition object does not implement "equals" method
{noformat}
RouteDefinition(Object).equals(Object) line: 156 
RouteDefinition(Object).equals(Object) line: 156 ArrayList<E>.remove(Object) 
line: 622 DefaultModel.removeRouteDefinition(RouteDefinition) line: 108 
DefaultModel.removeRouteDefinitions(Collection<RouteDefinition>) line: 94 
DefaultModel.addRouteDefinitions(Collection<RouteDefinition>) line: 79 
SpringCamelContext(DefaultCamelContext).addRouteDefinitions(Collection<RouteDefinition>)
 line: 126 
CamelContextFactoryBean(AbstractCamelContextFactoryBean<T>).setupRoutes() line: 
476 CamelContextFactoryBean.start() line: 367 
CamelContextFactoryBean.onApplicationEvent(ContextRefreshedEvent) line: 420 
CamelContextFactoryBean.onApplicationEvent(ApplicationEvent) line: 94 
SimpleApplicationEventMulticaster.doInvokeListener(ApplicationListener, 
ApplicationEvent) line: 172 
SimpleApplicationEventMulticaster.invokeListener(ApplicationListener<?>, 
ApplicationEvent) line: 165 
SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent, 
ResolvableType) line: 139 
AnnotationConfigApplicationContext(AbstractApplicationContext).publishEvent(Object,
 ResolvableType) line: 403 
AnnotationConfigApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent)
 line: 360 
AnnotationConfigApplicationContext(AbstractApplicationContext).finishRefresh() 
line: 897 
AnnotationConfigApplicationContext(AbstractApplicationContext).refresh() line: 
553 SpringApplication.refresh(ApplicationContext) line: 747 
SpringApplication.refreshContext(ConfigurableApplicationContext) line: 397 
SpringApplication.run(String...) line: 315 SpringApplication.run(Class<?>[], 
String[]) line: 1226 SpringApplication.run(Class<?>, String...) line: 1215 
NexusApp.main(String[]) line: 13 {noformat}
2. And because of that when rest endpoint route is created, it is the duplicate 
of the actual route
{noformat}
DefaultModel.addRouteDefinitions(Collection<RouteDefinition>) line: 81 
DefaultModel.addRouteDefinitions(Collection<RouteDefinition>) line: 81 
SpringCamelContext(DefaultCamelContext).addRouteDefinitions(Collection<RouteDefinition>)
 line: 126 
CamelContextFactoryBean(AbstractCamelContextFactoryBean<T>).setupRoutes() line: 
476 CamelContextFactoryBean.start() line: 367 
CamelContextFactoryBean.onApplicationEvent(ContextRefreshedEvent) line: 420 
CamelContextFactoryBean.onApplicationEvent(ApplicationEvent) line: 94 
SimpleApplicationEventMulticaster.doInvokeListener(ApplicationListener, 
ApplicationEvent) line: 172 
SimpleApplicationEventMulticaster.invokeListener(ApplicationListener<?>, 
ApplicationEvent) line: 165 
SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent, 
ResolvableType) line: 139 
AnnotationConfigApplicationContext(AbstractApplicationContext).publishEvent(Object,
 ResolvableType) line: 403 
AnnotationConfigApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent)
 line: 360 
AnnotationConfigApplicationContext(AbstractApplicationContext).finishRefresh() 
line: 897 
AnnotationConfigApplicationContext(AbstractApplicationContext).refresh() line: 
553 SpringApplication.refresh(ApplicationContext) line: 747 
SpringApplication.refreshContext(ConfigurableApplicationContext) line: 397 
SpringApplication.run(String...) line: 315 SpringApplication.run(Class<?>[], 
String[]) line: 1226 SpringApplication.run(Class<?>, String...) line: 1215 
NexusApp.main(String[]) line: 13 {noformat}
3. Which then fails duplicate Id validation
{noformat}
RouteDefinitionHelper.validateUniqueIds(RouteDefinition, List<RouteDefinition>) 
line: 267 RouteDefinitionHelper.validateUniqueIds(RouteDefinition, 
List<RouteDefinition>) line: 267 
SpringCamelContext(DefaultCamelContext).startRouteDefinitions(List<RouteDefinition>)
 line: 342 SpringCamelContext(DefaultCamelContext).startRouteDefinitions() 
line: 327 SpringCamelContext(AbstractCamelContext).doInit() line: 2598 
SpringCamelContext(BaseService).init() line: 83 
SpringCamelContext(AbstractCamelContext).init() line: 2431 
SpringCamelContext(BaseService).start() line: 111 
SpringCamelContext(AbstractCamelContext).start() line: 2448 
SpringCamelContext.start() line: 121 CamelContextFactoryBean.start() line: 373 
CamelContextFactoryBean.onApplicationEvent(ContextRefreshedEvent) line: 420 
CamelContextFactoryBean.onApplicationEvent(ApplicationEvent) line: 94 
SimpleApplicationEventMulticaster.doInvokeListener(ApplicationListener, 
ApplicationEvent) line: 172 
SimpleApplicationEventMulticaster.invokeListener(ApplicationListener<?>, 
ApplicationEvent) line: 165 
SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent, 
ResolvableType) line: 139 
AnnotationConfigApplicationContext(AbstractApplicationContext).publishEvent(Object,
 ResolvableType) line: 403 
AnnotationConfigApplicationContext(AbstractApplicationContext).publishEvent(ApplicationEvent)
 line: 360 
AnnotationConfigApplicationContext(AbstractApplicationContext).finishRefresh() 
line: 897 
AnnotationConfigApplicationContext(AbstractApplicationContext).refresh() line: 
553 SpringApplication.refresh(ApplicationContext) line: 747 
SpringApplication.refreshContext(ConfigurableApplicationContext) line: 397 
SpringApplication.run(String...) line: 315 SpringApplication.run(Class<?>[], 
String[]) line: 1226 SpringApplication.run(Class<?>, String...) line: 1215 
NexusApp.main(String[]) line: 13 {noformat}
 

> Failed to start route [A] because of duplicate id detected: [B]
> ---------------------------------------------------------------
>
>                 Key: CAMEL-14969
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14969
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-spring-boot
>    Affects Versions: 3.2.0
>            Reporter: Nenad Nesovanovic
>            Priority: Major
>         Attachments: eclipse1_compare_by_ref.PNG, 
> eclipse2_causes_duplicate.PNG, eclipse3-two-routes.PNG, 
> eclipse4-comparison-conflict.PNG, eclipse5-comparison-conflict.PNG
>
>
> When loading rest definitions via "xml-rests" path defined in property
> {quote}{color:#403294}camel.springboot.xml-rests = 
> classpath:folder-camel/folder-rest/*.xml{color}
> {quote}
> The camel 3.2 fails with error 
> {quote}{color:#de350b}Failed to start route first-test-get-id because of 
> duplicate id detected: first-test-to-id. Please correct ids to be unique 
> among all your routes.{color}
> {quote}
> My rest XML file is defined as
> {{<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" 
> encoding="UTF-8"?>}}
> {{<rests xmlns="http://camel.apache.org/schema/spring"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"}}
> {{ xsi:schemaLocation="}}
> {{    http://camel.apache.org/schema/spring 
> https://camel.apache.org/schema/spring/camel-spring-3.2.0.xsd}}
> {{    ">}}
> {{ <rest id="id1" path="/test">}}
> {{ <get id="id2" uri="/folderuri">}}
> {color:#de350b}{{ <to id="id3" uri="log:test-nexus-rest" />}}{color}
> {{ </get>}}
> {{ </rest>}}
> {{</rests>}}
> However, when I envelope TO tag in the ROUTE tag, the issue gets resolved
> {{<rest id="id1" path="/test">}}
> {{<get id="id2" uri="/folderuri">}}
> {{{color:#4c9aff}<route id="id4">{color}}}
> {{{color:#de350b}<to id="id3" uri="log:test-nexus-rest" />{color}}}
> {{{color:#4c9aff}</route>{color}}}
> {{</get>}}
> {{</rest>}}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to