karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hugh Rodgers (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (KARAF-1560) config:update throws ClassCastException when used on a Configuration with boolean fields created in the web console
Date Tue, 10 Sep 2013 16:52:53 GMT

    [ https://issues.apache.org/jira/browse/KARAF-1560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13763180#comment-13763180
] 

Hugh Rodgers edited comment on KARAF-1560 at 9/10/13 4:51 PM:
--------------------------------------------------------------

What is the status on this issue? It is beginning to impact our project and we would welcome
an update on it. We are currently on Karaf v2.3.2 and still have this issue.

Would the potential fix be as simple as doing instanceof on the various types supported by
metatype (i.e., Boolean, Integer, Double, etc.) in the ConfigCommandSupport.persistConfiguration(...):

protected void persistConfiguration(ConfigurationAdmin admin, String pid, Dictionary props)
throws IOException {

154	       //... code elided

172	        Properties p = new Properties(storageFile);
173	        for (Enumeration keys = props.keys(); keys.hasMoreElements(); ) {
174	            Object key = keys.nextElement();
175	            if (!Constants.SERVICE_PID.equals(key)
176	                    && !ConfigurationAdmin.SERVICE_FACTORYPID.equals(key)
177	                    && !FILEINSTALL_FILE_NAME.equals(key)) {
178	                p.put((String) key, (String) props.get(key));  // change this line to
do instanceof on props.get(key) for each type supported by metatype?
179	            }
180	        }
                
      was (Author: rodgersh):
    What is the status on this issue? It is beginning to impact our project and we would welcome
an update on it. We are currently on Karaf v2.3.2 and still have this issue.
                  
> config:update throws ClassCastException when used on a Configuration with boolean fields
created in the web console
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: KARAF-1560
>                 URL: https://issues.apache.org/jira/browse/KARAF-1560
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-config
>    Affects Versions: 2.2.5
>            Reporter: Hugh Rodgers
>            Assignee: Jean-Baptiste Onofré
>            Priority: Minor
>             Fix For: 2.2.12, 2.3.3, 2.4.0, 3.0.1
>
>         Attachments: demo_validation.png, karaf_config_propset.png, karaf_log.png, metatype.xml
>
>
> I am using Karaf v2.2.5 on Windows 7. I start Karaf (using the karaf.bat
> script) and create a configuration that has one or more fields that are
> checkboxes (i.e., Boolean).
> I then go to the Karaf command line console and issue the following
> commands:
> config:edit <PID of configuration just created in Admin Console>
> config:propset <booleanFieldName> true
> config:update
> When I submit the config"update command I get this exception:
> 09:52:19,658 | INFO  | l Console Thread | Console                          |
> araf.shell.console.jline.Console  242 | 14 - org.apache.karaf.shell.console
> - 2.2.5 | Exception caught while executing command
> java.lang.ClassCastException: java.lang.Boolean cannot be cast to
> java.lang.String
>        at
> org.apache.karaf.shell.config.ConfigCommandSupport.persistConfiguration(ConfigCommandSupport.java:161)[41:org.apache.karaf.shell.config:2.2.5]
>        at
> org.apache.karaf.shell.config.ConfigCommandSupport.update(ConfigCommandSupport.java:129)[41:org.apache.karaf.shell.config:2.2.5]
>        at
> org.apache.karaf.shell.config.UpdateCommand.doExecute(UpdateCommand.java:38)[41:org.apache.karaf.shell.config:2.2.5]
>        at
> org.apache.karaf.shell.config.ConfigCommandSupport.doExecute(ConfigCommandSupport.java:63)[41:org.apache.karaf.shell.config:2.2.5]
>        at
> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:474)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:400)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)[14:org.apache.karaf.shell.console:2.2.5]
>        at
> org.apache.karaf.shell.console.jline.Console.run(Console.java:221)[14:org.apache.karaf.shell.console:2.2.5]
>        at java.lang.Thread.run(Thread.java:662)[:1.6.0_29]
> And the configuration is not saved.
> Configuration completely created/updated in the Admin Console work fine.
> Likewise, configurations completely created in the command line console work
> fine. The issue arises only with boolean fields and what mechanism is used
> to initially create the configuration.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message