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

Claus Ibsen updated CAMEL-16489:
--------------------------------
    Priority: Major  (was: Critical)

> YAML DSL is sensitive to key ordering
> -------------------------------------
>
>                 Key: CAMEL-16489
>                 URL: https://issues.apache.org/jira/browse/CAMEL-16489
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-yaml-dsl
>    Affects Versions: 3.9.0
>            Reporter: Nicola Ferraro
>            Assignee: Luca Burgazzoli
>            Priority: Major
>             Fix For: 3.10.0
>
>
> Related to [https://github.com/apache/camel-k/issues/2203]
>  
> This does not seem to work in YAML DSL:
>  
> {code:java}
>  - from:
>     steps:
>     - to:
>         parameters:
>           showHeaders: "true"
>         uri: "log:info"
>     uri: "timer:tick"
> {code}
>  
> Error:
>  
> {code:java}
> [1] Caused by: java.lang.IllegalStateException: url must be set before 
> setting properties
> [1]   at 
> org.apache.camel.dsl.yaml.deserializers.ModelDeserializers$ToDefinitionDeserializer.setProperty(ModelDeserializers.java:14189)
> [1]   at 
> org.apache.camel.dsl.yaml.deserializers.ModelDeserializers$ToDefinitionDeserializer.setProperty(ModelDeserializers.java:14141)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.setProperties(YamlDeserializerBase.java:103)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.construct(YamlDeserializerBase.java:51)
> [1]   at 
> org.apache.camel.k.loader.yaml.YamlSourceLoaderDeserializerResolver$ToDeserializer.construct(YamlSourceLoaderDeserializerResolver.java:65)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializationContext$2.construct(YamlDeserializationContext.java:194)
> [1]   at 
> org.apache.camel.dsl.yaml.deserializers.ProcessorDefinitionDeserializer.construct(ProcessorDefinitionDeserializer.java:36)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializationContext$1.construct(YamlDeserializationContext.java:152)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asType(YamlDeserializerSupport.java:290)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asCollection(YamlDeserializerSupport.java:268)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asFlatCollection(YamlDeserializerSupport.java:249)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asFlatList(YamlDeserializerSupport.java:223)
> [1]   at 
> org.apache.camel.dsl.yaml.deserializers.RouteFromDefinitionDeserializer.setProperties(RouteFromDefinitionDeserializer.java:76)
> [1]   at 
> org.apache.camel.dsl.yaml.deserializers.RouteFromDefinitionDeserializer.setProperties(RouteFromDefinitionDeserializer.java:36)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.construct(YamlDeserializerBase.java:51)
> [1]   at 
> org.apache.camel.k.loader.yaml.YamlSourceLoaderDeserializerResolver$RouteFromDeserializer.construct(YamlSourceLoaderDeserializerResolver.java:57)
> [1]   at 
> org.apache.camel.dsl.yaml.common.YamlDeserializationContext$2.construct(YamlDeserializationContext.java:194)
> [1]   at 
> org.snakeyaml.engine.v2.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:140)
> [1]   at 
> org.snakeyaml.engine.v2.constructor.BaseConstructor.constructObject(BaseConstructor.java:128)
> [1]   at 
> org.snakeyaml.engine.v2.constructor.BaseConstructor.constructSequenceStep2(BaseConstructor.java:206)
> [1]   at 
> org.snakeyaml.engine.v2.constructor.BaseConstructor.constructSequence(BaseConstructor.java:199)
> [1]   at 
> org.snakeyaml.engine.v2.constructor.StandardConstructor$ConstructYamlSeq.construct(StandardConstructor.java:340)
> [1]   at 
> org.snakeyaml.engine.v2.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:140)
> [1]   at 
> org.snakeyaml.engine.v2.constructor.BaseConstructor.constructObject(BaseConstructor.java:128)
> [1]   at 
> org.snakeyaml.engine.v2.constructor.BaseConstructor.construct(BaseConstructor.java:87)
> [1]   ... 32 more {code}
>  
> Changing the order to this, fixes:
> {code:java}
> - from:
>     uri: "timer:tick"
>     steps:
>     - to:
>         uri: "log:info"
>         parameters:
>           showHeaders: "true" {code}



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

Reply via email to