[
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]