You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Wouter Born (Jira)" <ji...@apache.org> on 2021/03/09 22:55:00 UTC

[jira] [Commented] (KARAF-6998) Karaf 4.3 Configurations with array property values calls @modified every 2 seconds

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

Wouter Born commented on KARAF-6998:
------------------------------------

I tested integrating Karaf 4.3.1-SNAPSHOT into our openHAB distro and also ran into configurations continuously being updated without any changes. So I hope it will be fixed before 4.3.1 is released. We also have .cfg files that are converted into .json files. I added some debug logging as attachment. If you want more info I can add it and if there is a fix I am happy to help testing it! :) I didn't find anything else so far besides this issue. (y)

[^logging.txt]

> Karaf 4.3 Configurations with array property values calls @modified every 2 seconds
> -----------------------------------------------------------------------------------
>
>                 Key: KARAF-6998
>                 URL: https://issues.apache.org/jira/browse/KARAF-6998
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>    Affects Versions: 4.3.0
>            Reporter: Scott Ortel
>            Assignee: Jean-Baptiste Onofré
>            Priority: Major
>             Fix For: 4.3.1
>
>         Attachments: logging.txt
>
>
> Configurations created with configadmin in 4.3 have two issues:
> 1) The configuration is always persisted as JSON by the JsonConfigInstaller in 'karaf.etc' and is therefore watched by the file installer.  It seems this behavior should be governed by the 'felix.cm.dir' setting,  which would allow these persisted configurations to be placed elsewhere or not at all.  This differs from the .cfg CM persistence behavior.
> 2) When JsonConfigInstaller examines the configuration and compares it to the existing one (setConfig() line 83), by performing a simple .equals() on the 'old' and 'properties' hash tables.  This does not property handle property values that are arrays (valid in OSGi 7).  As you know a map simply compares the key values using .equals, which for arrays is '=='.  This causes the configuration to always appear to be modified and the associated component is deactivated/activated/modified every 2 seconds.
>  
> Thank you for Karaf and for considering this issue.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)