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

Lorenz Quack commented on QPID-7438:
------------------------------------

The first commit adds the {{changesConfiguredObjectState}} parameter to the 
{{ManagedOperation}} annotation and does the code generation.
The second commit modifies the rest of the code to add the 
{{changesConfiguredObjectState}} argument to the annotations and removes the 
{{doOnConfigThread}} code that was already in place.
However, the first patch alone will not compile because the 
{{changesConfiguredObjectState}} parameter does not have a default.

Some open questions remain:
* {{VH#import-/exportMessageStore}} do not directly modify the configured 
object state but rely on it not changing (i.e. the VH not becoming active or 
deleted). For this purpose the name {{changesConfiguredObjectStat}} does not 
seem appropriate
* {{VH#exportMessageStore}} does not access the VH itself. Instead it returns a 
{{MessageStoreContent}} object that access the store when its write method is 
called. This happens out side the autogenerated {{doOnConfigThread()}} 
effectivly sidestepping this mechanism.
* {{SiteSpecificTrustStore#refreshCertificate}} modifies the configured object 
state so it should set {{changesConfiguredObjectState}} to {{true}}. However, 
it makes a connection to a external address over the WAN which could 
potentially take a long time. Do we really want to block the config thread for 
this duration?
* Should {{ManagedOperations}} that access configured object state in a non 
atomic way set {{changesConfiguredObjectState}} to {{true}}? For example 
{{RuleBased(VirtualHost)AccessControllerProvider#extractRules}} iterates over 
{{_rules}}. What about {{VirtualHost#exportConfig}}?

> ACL provider and AutoGeneratedSelfSignedKeyStore modify configured state 
> without using the configuration task executor
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-7438
>                 URL: https://issues.apache.org/jira/browse/QPID-7438
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Broker
>            Reporter: Keith Wall
>             Fix For: qpid-java-6.1
>
>
> By design, any changes to a CO's configured state must be made by the 
> configuration task executor.  There are managed operations on 
> AutoGeneratedSelfSignedKeyStore, RuleBasedAccessControlProvider, and 
> AclFileAccessControlProvider which violate this rule.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to