[ https://issues.apache.org/jira/browse/CAMEL-4099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13048709#comment-13048709 ]
Claus Ibsen commented on CAMEL-4099: ------------------------------------ Okay found the bug. The replacement string must be quoted when using replaceFirst in the matcher, to have it work as a direct literal replacement. Se the JDK javadoc http://download.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html#quoteReplacement(java.lang.String) > Camel PropertyPlaceHolder throws an Error when using ${user.home} environment > variable in Windows > ------------------------------------------------------------------------------------------------- > > Key: CAMEL-4099 > URL: https://issues.apache.org/jira/browse/CAMEL-4099 > Project: Camel > Issue Type: Bug > Components: camel-core > Affects Versions: 2.7.2 > Environment: Windows 7, Java 1.6 > Reporter: Carlo M. Camerino > Assignee: Claus Ibsen > Priority: Minor > Labels: camel-core,, configuration, propertyplaceholder, > Fix For: 2.8.0 > > > Error happens when I try to configure using properyconfigurer > <camel:propertyPlaceholder > location="file://${user.home}/aventurine-config/aventurine-config.properties" > id="propertyPlaceHolder"/> and try to use an environment variable. THis > happens only on windows environment. This works on Ubuntu, It seems that > camel is removing the slashes in ${user.home} > org.apache.camel.RuntimeCamelException: > org.apache.camel.FailedToCreateRouteException: Failed to create route > areaFileRoute: Route[[From[file:{{upload.folder}}]] -> > [DoTry[[process[ref:... because of Failed to resolve endpoint: > file:{{upload.folder}} due to: > C:Userscarloc\aventurine-config\aventurine-config.properties (The system > cannot find the path specified) > at > org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1139) > at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:103) > at > org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:238) > at > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97) > at > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303) > at > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911) > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428) > at > org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) > at > org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) > at > org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) > at > org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) > at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) > at > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1239) > at > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) > at > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:466) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) > at org.mortbay.jetty.Server.doStart(Server.java:222) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at com.ccti.StartUFM.main(StartUFM.java:35) > Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create > route areaFileRoute: Route[[From[file:{{upload.folder}}]] -> > [DoTry[[process[ref:... because of Failed to resolve endpoint: > file:{{upload.folder}} due to: > C:Userscarloc\aventurine-config\aventurine-config.properties (The system > cannot find the path specified) > at > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:170) > at > org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:706) > at > org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1643) > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1432) > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1336) > at > org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:164) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54) > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1314) > at > org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:203) > at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:101) > ... 18 more > Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve > endpoint: file:{{upload.folder}} due to: > C:Userscarloc\aventurine-config\aventurine-config.properties (The system > cannot find the path specified) > at > org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:407) > at > org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:47) > at > org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:180) > at > org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:110) > at > org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:116) > at > org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72) > at > org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:88) > at > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:793) > at > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:165) > ... 28 more > Caused by: java.io.FileNotFoundException: > C:Userscarloc\aventurine-config\aventurine-config.properties (The system > cannot find the path specified) > at java.io.FileInputStream.open(Native Method) > at java.io.FileInputStream.<init>(FileInputStream.java:106) > at java.io.FileInputStream.<init>(FileInputStream.java:66) > at > org.apache.camel.component.properties.DefaultPropertiesResolver.loadPropertiesFromFilePath(DefaultPropertiesResolver.java:67) > at > org.apache.camel.component.properties.DefaultPropertiesResolver.resolveProperties(DefaultPropertiesResolver.java:49) > at > org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:96) > at > org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:83) > at > org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:963) > at > org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:405) > ... 36 more -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira