[
https://issues.apache.org/jira/browse/GEODE-7449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bill Burcham updated GEODE-7449:
--------------------------------
Component/s: membership
> Eliminate SocketCreatorFactory Singleton
> ----------------------------------------
>
> Key: GEODE-7449
> URL: https://issues.apache.org/jira/browse/GEODE-7449
> Project: Geode
> Issue Type: Bug
> Components: membership, security
> Reporter: Bill Burcham
> Priority: Major
>
> {{SocketCreatorFactory}} is primarily accessed through a singleton. The
> "module" is initialized via the static {{setDistributionConfig()}} method and
> de-initialized via the static {{close()}} method. Unfortunately though, a
> call to {{setDistributionConfig()}} is insufficient to fully initialize the
> singleton since doing so does not initialize (clear) the
> {{Map<SecurableCommunicationChannel, SocketCreator> socketCreators}} field.
> This bites in tests. If a test interacts with the singleton and fails to call
> {{SocketCreatorFactory.close()}} at the end, then subsequent tests, which are
> merely calling {{setDistributionConfig()}} are starting with a
> {{socketCreators}} map that is in some indeterminate state. The obvious
> solution, of clearing the map in {{setDistributionConfig()}} is problematic
> because there are other static methods on the class that may be relying on
> the state of that map.
> So rather than spending effort trying to shore up the static interface to the
> singleton, this ticket proposes eliminating the singleton (global variable)
> entirely. Clients that need a {{SocketCreatorFactory}} should use one. They
> should interact with it solely through instance methods.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)