Bean handling not allowing an XPathExpressionEngine
---------------------------------------------------

                 Key: CONFIGURATION-365
                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-365
             Project: Commons Configuration
          Issue Type: Bug
         Environment: OSGi / Felix
            Reporter: Rob Walker


Trying to set an XPathExpressionEngine in the config file:

===
  <xml  
    config-name="config.product.xml" 
    fileName="${sys:bundle.root}/etc/${sys:launch.target}.properties.xml" 
    >
        <expressionEngine 
config-class="org.apache.commons.configuration.tree.xpath.XPathExpressionEngine"/>
  </xml>
===

And it throws an exception:

====
Caused by: org.apache.commons.configuration.ConfigurationException: 
org.apache.commons.configuration.ConfigurationRuntimeException:
java.lang.IllegalArgumentException: Cannot invoke 
org.apache.commons.configuration.HierarchicalConfiguration.setExpressionEngine 
on
bean class 'class org.apache.commons.configuration.XMLConfiguration' - argument 
type mismatch - had objects of type "org.apache.comm
ons.configuration.tree.xpath.XPathExpressionEngine" but expected signature 
"org.apache.commons.configuration.tree.ExpressionEngine"
        at 
org.apache.commons.configuration.DefaultConfigurationBuilder.createConfigurationAt(DefaultConfigurationBuilder.java:752)
        at 
org.apache.commons.configuration.DefaultConfigurationBuilder.initCombinedConfiguration(DefaultConfigurationBuilder.java:6
28)
        at 
org.apache.commons.configuration.DefaultConfigurationBuilder.getConfiguration(DefaultConfigurationBuilder.java:560)
        at 
com.ascert.vt.modules.propsmgr.PropsMgrMainOSGI.<init>(PropsMgrMainOSGI.java:102)
        ... 13 more
Caused by: org.apache.commons.configuration.ConfigurationRuntimeException: 
java.lang.IllegalArgumentException: Cannot invoke org.apa
che.commons.configuration.HierarchicalConfiguration.setExpressionEngine on bean 
class 'class org.apache.commons.configuration.XMLCon
figuration' - argument type mismatch - had objects of type 
"org.apache.commons.configuration.tree.xpath.XPathExpressionEngine" but e
xpected signature "org.apache.commons.configuration.tree.ExpressionEngine"
        at 
org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:252)
        at 
org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:269)
        at 
org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:283)
        at 
org.apache.commons.configuration.DefaultConfigurationBuilder.createConfigurationAt(DefaultConfigurationBuilder.java:747)
        ... 16 more
Caused by: java.lang.IllegalArgumentException: Cannot invoke 
org.apache.commons.configuration.HierarchicalConfiguration.setExpressio
nEngine on bean class 'class org.apache.commons.configuration.XMLConfiguration' 
- argument type mismatch - had objects of type "org.
apache.commons.configuration.tree.xpath.XPathExpressionEngine" but expected 
signature "org.apache.commons.configuration.tree.Express
ionEngine"
===

Since XPathExpressionEngine implements ExpressionEngine, this looks like a 
reflection bug to me i.e. not finding a method with a signature for implemented 
interfaces as opposed to just subclasses.


Not sure if this is OSGi / Felix classloading related, but don't think so

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to