camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Huston <shus...@riverace.com>
Subject PropertyInject defaultValue doesn't work with zero-length string
Date Tue, 07 Nov 2017 15:28:52 GMT
I am using Camel 2.19.1 and have a question on @PropertyInject with a default value. I have
the following:

public class MyStuff {
    @PropertyInject(value="testVal", defaultValue="")
    private String testVal;
...
}

When this class is instantiated and injected, if there is no 'testVal" in properties, I get
an exception (below) that the testVal key is not found.

But if I change the defaultValue to anything non-empty, it works fine - the default value
is used without a property of the given name.

Is this the way you would expect it to work?

Thanks,
-Steve

...
Caused by: org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException: Property
with key [testVal] not found in properties from text: {{testVal}}
	at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1774)
	at org.apache.camel.impl.CamelPostProcessorHelper.getInjectionPropertyValue(CamelPostProcessorHelper.java:282)
	at org.apache.camel.impl.DefaultCamelBeanPostProcessor.injectFieldProperty(DefaultCamelBeanPostProcessor.java:211)
	at org.apache.camel.impl.DefaultCamelBeanPostProcessor$1.doWith(DefaultCamelBeanPostProcessor.java:171)
	at org.apache.camel.util.ReflectionHelper.doWithFields(ReflectionHelper.java:74)
	at org.apache.camel.impl.DefaultCamelBeanPostProcessor.injectFields(DefaultCamelBeanPostProcessor.java:167)
	at org.apache.camel.impl.DefaultCamelBeanPostProcessor.postProcessBeforeInitialization(DefaultCamelBeanPostProcessor.java:82)
	at org.apache.camel.impl.DefaultInjector.newInstance(DefaultInjector.java:48)
	... 61 more
Caused by: java.lang.IllegalArgumentException: Property with key [ris.testOpk] not found in
properties from text: {{ris.testOpk}}
	at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue(DefaultPropertiesParser.java:271)
	at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty(DefaultPropertiesParser.java:157)
	at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParse(DefaultPropertiesParser.java:116)
	at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse(DefaultPropertiesParser.java:100)
	at org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:63)
	at org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:230)
	at org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:173)
	at org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:2411)
	at org.apache.camel.impl.CamelPostProcessorHelper.getInjectionPropertyValue(CamelPostProcessorHelper.java:268)
	... 67 more


Mime
View raw message