Clement Escoffier created FELIX-3567:
----------------------------------------
Summary: iPOJO Configuratuin Handler should not reuse the
dictionary object from the configuration admin
Key: FELIX-3567
URL: https://issues.apache.org/jira/browse/FELIX-3567
Project: Felix
Issue Type: Bug
Components: iPOJO
Affects Versions: ipojo-core-1.8.2
Reporter: Clement Escoffier
Fix For: ipojo-core-1.8.4
The configuration handler is reusing the dictionary object given by the Config
Admin. However, in the latest version of the Felix config admin, it uses a
custom implementation constraining the value's types (as described in the
spec). So, iPOJO should not reuse this object but copy the content and create a
new dictionary object.
Here is the stack trace when this bug occurred:
[ERROR] org.ow2.chameleon.bluetooth.discovery.BluetoothDeviceDiscovery : Value
[GIAC] has unsupported (base-) type class
org.ow2.chameleon.bluetooth.discovery.BluetoothDeviceDiscovery$DiscoveryMode
java.lang.IllegalArgumentException: Value [GIAC] has unsupported (base-) type
class
org.ow2.chameleon.bluetooth.discovery.BluetoothDeviceDiscovery$DiscoveryMode
at
org.apache.felix.cm.impl.CaseInsensitiveDictionary.checkValue(CaseInsensitiveDictionary.java:342)
at
org.apache.felix.cm.impl.CaseInsensitiveDictionary.put(CaseInsensitiveDictionary.java:196)
at
org.apache.felix.ipojo.handlers.configuration.ConfigurationHandler.__M_start(ConfigurationHandler.java:331)
at
org.apache.felix.ipojo.handlers.configuration.ConfigurationHandler.start(ConfigurationHandler.java)
at org.apache.felix.ipojo.HandlerManager.start(HandlerManager.java:136)
at
org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:335)
at
org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:178)
at
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:301)
at
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:238)
at org.apache.felix.ipojo.IPojoFactory.updated(IPojoFactory.java:643)
at
org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1567)
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:104)
at java.lang.Thread.run(Thread.java:680)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira