You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Grzegorz Grzybek (Jira)" <ji...@apache.org> on 2020/07/15 13:16:00 UTC
[jira] [Commented] (FELIX-6103) ConfigInstaller, when using
NotCachablePersistenceManager, can restore cached stale properties
[ https://issues.apache.org/jira/browse/FELIX-6103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17158146#comment-17158146 ]
Grzegorz Grzybek commented on FELIX-6103:
-----------------------------------------
I wanted to run pax-web 7.3.8-SNAPSHOT tests with Karaf 4.2.9 which uses felix.fileinstall 3.6.6 and the tests failed. I checked that the problem is [this commit|https://github.com/apache/felix-dev/commit/e4131ea442a711d5996ae514dcdbfb6a6ccd0486] and in particular, this fragment:
{code:java}
Configuration cachedConfiguration = oldConfiguration != null ?
getConfigurationAdmin().getConfiguration(oldConfiguration.getPid()) : null;
{code}
{{configAdmin.getConfiguration(pid)}} - the 1-arg version of {{getConfiguration()}} always calls {{org.apache.felix.cm.impl.ConfigurationImpl#setDynamicBundleLocation()}} when location is not set and in my particular test the PIDs created by Karaf features installed during pax-exam tests have location set to URI of felix.fileinstall bundle (instead of {{"?"}}) - such configuration can't be passed to pax-web-runtime bundle which sets up ManagedService for {{org.ops4j.pax.web}} PID...
IMO, {{getConfiguration(pid, "?")}} should be called in the above fragment instead.
[~jbonofre], [~gnodet] what do you think?
> ConfigInstaller, when using NotCachablePersistenceManager, can restore cached stale properties
> ----------------------------------------------------------------------------------------------
>
> Key: FELIX-6103
> URL: https://issues.apache.org/jira/browse/FELIX-6103
> Project: Felix
> Issue Type: Bug
> Components: File Install
> Reporter: Mariano Alvaro
> Assignee: Raymond Augé
> Priority: Major
> Fix For: fileinstall-3.6.6
>
> Attachments: diffs.txt
>
>
> When using a NotCachablePersistenceManager the following steps occur when changing .config file values:
>
> # ConfigInstaller.setConfig gets called.
> # Configuration gets retrieved from ConfigInstaller.getConfiguration method
> # getConfigurationAdmin().listConfigurations(filter) returns a new configuration each time because NotCacheablePersitenceManger is used.
> # Changes are performed in the new Configuration.
> # ConfigInstaller.doConfigurationEvent gets called back and retrieves configuration from configurationAdmin.
> # ConfigurationAdmin.getConfiguration retrieves cached value (hasn't been updated in step 4 because a new differente configuration was returned)
> # config file gets updated with cached values
--
This message was sent by Atlassian Jira
(v8.3.4#803005)