From 6ee1440f6f56ac066f97383315b2798287f0821a Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 23 Mar 2011 22:27:01 +0000
Subject: [PATCH] Fix issue OpenDJ-95: Socket leak and constant disconnect/reconnect when a directory server can no longer reach its connected replication server

---
 opends/src/server/org/opends/server/replication/server/ECLServerHandler.java |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
index b111327..4c53060 100644
--- a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -23,7 +23,7 @@
  *
  *
  *      Copyright 2009-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2010 ForgeRock AS
+ *      Portions Copyright 2010-2011 ForgeRock AS
  */
 package org.opends.server.replication.server;
 
@@ -169,6 +169,7 @@
     }
     /**
      * Provide a string representation of this object for debug purpose..
+     * @param buffer Append to this buffer.
      */
     public void toString(StringBuilder buffer)
     {
@@ -1550,9 +1551,10 @@
       // INIT_PHASE is done AND search is persistent => goto PERSISTENT_PHASE
       searchPhase = PERSISTENT_PHASE;
 
-      if (writer ==null)
+      final ProtocolSession localSession = session;
+      if (writer ==null && localSession != null)
       {
-        writer = new ECLServerWriter(session,this,replicationServerDomain);
+        writer = new ECLServerWriter(localSession,this,replicationServerDomain);
         writer.start();  // start suspended
       }
 

--
Gitblit v1.10.0