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

Krzysztof Sobkowiak updated SM-2285:
------------------------------------
    Fix Version/s:     (was: Later)
                   7.1.0
                   7.0.2

> Camel Simple Language doesn't pick up default properties location after SMX 
> restart
> -----------------------------------------------------------------------------------
>
>                 Key: SM-2285
>                 URL: https://issues.apache.org/jira/browse/SM-2285
>             Project: ServiceMix
>          Issue Type: Bug
>    Affects Versions: 5.0.0
>            Reporter: Petr Potekhin
>             Fix For: 7.0.2, 7.1.0
>
>         Attachments: smx-bug-demo.zip
>
>
> When using properties files in ./etc folder of SMX to configure the bundle, 
> the properties are not picked up when SMX is restarted. The problem is only 
> reproduced for Simple language expressions like $\{properties:<key>\}. The 
> problem is only present when starting SMX and the bundle is already there, it 
> doesn't occur after deploying the configured bundle into SMX.
> The exception says:
> {noformat}
> java.lang.IllegalArgumentException: Property with key [xslt.dir] not found in 
> properties from text: {{xslt.dir}}, StackTrace: 
> org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException: 
> Property with key [xslt.dir] not found in properties from text: {{xslt.dir}}
>       at 
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1363)
>       at 
> org.apache.camel.builder.ExpressionBuilder$78.evaluate(ExpressionBuilder.java:1784)
>       at 
> org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
>       at 
> org.apache.camel.builder.ExpressionBuilder$59.evaluate(ExpressionBuilder.java:1397)
>       at 
> org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
>       at 
> org.apache.camel.scala.dsl.languages.LanguageFunction.evaluate(LanguageFunction.scala:33)
>       at 
> org.apache.camel.scala.ScalaExpression.evaluate(ScalaExpression.scala:30)
>       at 
> org.apache.camel.scala.ScalaExpression.evaluate(ScalaExpression.scala:36)
>       at 
> org.apache.camel.builder.ProcessorBuilder$4.process(ProcessorBuilder.java:103)
>       at 
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
>       at 
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
>       at 
> org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:111)
>       at 
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
>       at 
> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51)
>       at 
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)
>       at 
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
>       at 
> org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:111)
>       at 
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
>       at 
> org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:291)
>       at 
> org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:200)
>       at 
> org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:147)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:744)
> Caused by: java.lang.IllegalArgumentException: Property with key [xslt.dir] 
> not found in properties from text: {{xslt.dir}}
>       at 
> org.apache.camel.component.properties.DefaultPropertiesParser.doParseUri(DefaultPropertiesParser.java:120)
>       at 
> org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:51)
>       at 
> org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:160)
>       at 
> org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:119)
>       at 
> org.apache.camel.builder.ExpressionBuilder$78.evaluate(ExpressionBuilder.java:1781)
>       ... 38 more
> {noformat}
> We also use properties in uris using the following format \{ \{<key>\} \}. 
> When addressing properties in this way the problem doesn't occur. 
> In our case when starting SMX two Camel PropertyComponent instances are 
> created: one of them has its locations field uninitialized, the other is 
> created later and it has locations field initialized with something like 
> "blueprint:.cm8". The first component is used by Simple language and fails to 
> find property value, the second is applied from uris and gets the right value 
> of properties. When redeploying the bundle another PropertyComponent is 
> created with locations set and Simple language expressions start using it.
> The problem appeared after migrating to SMX5.0.0



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to