[
https://issues.apache.org/jira/browse/ARIES-2207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Amichai Rothman closed ARIES-2207.
----------------------------------
Fix Version/s: rsa-2.0.0
Resolution: Fixed
> Import/ExportRegistrationImpl copies use convoluted shared state and don't
> fully implement api contracts
> --------------------------------------------------------------------------------------------------------
>
> Key: ARIES-2207
> URL: https://issues.apache.org/jira/browse/ARIES-2207
> Project: Aries
> Issue Type: Bug
> Components: Remote Service Admin
> Affects Versions: rsa-1.16.1
> Reporter: Amichai Rothman
> Assignee: Amichai Rothman
> Priority: Major
> Fix For: rsa-2.0.0
>
>
> Both ImportRegistrations and ExportRegistrations, according to the spec,
> should under some circumstances (re-exporting/importing an already
> exported/imported endpoint) return a new instance of the registration that is
> linked to (i.e. shares state) with the previously existing one.
> The current implementation is rather convoluted, making it error-prone and
> difficult to maintain: the impl has all fields (both shared and
> per-instance), one of them is designated as the 'parent', then at various
> places there are checks and conditionals deciding whether to use the
> instance's own fields (if it is the parent) or delegate to the parent.
> A much more straightforward and intuitive approach would be to just have a
> shared state object containing the shared data, and have all impls reference
> it with simple and consistent code.
> In addition, the spec and interface javadocs state the contract for the
> methods of this class, specifically several of them need to either return
> data, return null, or throw an IllegalStateException, depending on the
> dynamic state of the registration (invalid, closed, etc.). The current
> implementation doesn't implement these contracts properly.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)