Darrel Schneider created GEODE-10337:
----------------------------------------

             Summary: SocketCreatorFactory does not null out instance static
                 Key: GEODE-10337
                 URL: https://issues.apache.org/jira/browse/GEODE-10337
             Project: Geode
          Issue Type: Bug
          Components: membership
            Reporter: Darrel Schneider


The SocketCreatorFactory has a static "instance" field that keeps the singleton 
factory. The factory has a reference in "distributionConfig" that ends up 
keeping the InternalDistributedSystem alive after disconnect.
It also has a static close method but the product never calls it.
To fix this leak do the following:
On InternalDistributedSystem.disconnect add to the end of it:
{code:java}
          if (!attemptingToReconnect) {
            SocketCreatorFactory.close();
          }
{code}
Also I think it would be good to change SocketCreatorFactory.getInstance to 
null out the static when close it called like so:

{code:java}
  private static synchronized SocketCreatorFactory getInstance(boolean closing) 
{
    SocketCreatorFactory result = instance;
    if (result == null && !closing) {
      result = new SocketCreatorFactory();
      instance = result;
    } else if (result != null && closing) {
      instance = null;
    }
    return result;
  }
{code}





--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to