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

Francesco Mari commented on OAK-2960:
-------------------------------------

bq. It is also present in the DocumentNodeStoreService as I mentioned above.

Sorry, I didn't read carefully. My same comments apply to 
{{DocumentNodeStoreService}} as well.

bq. Why? Is it required by the specification, asking as I don't know.

It is not strictly required by the specification. It is a matter of 
conventions, though. If you design your component to ignore some changes in the 
configuration, it should be documented in a very visible way. Moreover, it may 
be worth logging an INFO message in the {{@Modified}} method describing what 
configuration option is being ignored and why. It should be also documented 
that for a configuration to be fully applied, that same configuration must be 
unbound and bound again.

bq. Well, the current implementations do just that but in addition also do 
update some non-critical properties (via the @Modified) method.

Not completely true. Changes to properties are persistently saved in the 
configuration by the CM Implementation, but are not picked up by the component 
unless that same configuration is unbound and bound again. Persisting the 
properties and propagating the configuration to the component are two different 
steps, see section 104.5.3 in the OSGi Compendium. If a {{@Modified}} method is 
present, the component is not reactivated, see sections 112.5.12 and 112.5.14 
in the OSGi compendium



> SegmentNodeStoreService doesn't fully implement a @Modified method
> ------------------------------------------------------------------
>
>                 Key: OAK-2960
>                 URL: https://issues.apache.org/jira/browse/OAK-2960
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segmentmk
>            Reporter: Francesco Mari
>            Priority: Critical
>             Fix For: 1.3.1
>
>         Attachments: OAK-2960-01.patch
>
>
> The {{SegmentNodeStoreService}} component recently introduced an 
> {{@Modified}} method that picks up changes in just one configuration property 
> and ignores the rest.
> Some configuration properties, like {{customBlobStore}}, have a huge impact 
> on the dynamic behaviour of the component. If the component fails to pick up 
> these changes, its behaviour is just wrong.
> The {{@Modified}} method should be removed. It is safer to go through a 
> complete deactivation and activation process.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to