[
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)