From a77994116fdc36bff765e79f85fdb29027259f32 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Mon, 02 Nov 2026 08:21:08 +0000
Subject: [PATCH] [#1250] Report unexpected replication stream EOF as a bad disconnection (#1254)

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/server/ServerReader.java |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ServerReader.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ServerReader.java
index 7eb1c9e..424c8c3 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ServerReader.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ServerReader.java
@@ -13,9 +13,11 @@
  *
  * Copyright 2006-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.replication.server;
 
+import java.io.EOFException;
 import java.net.SocketException;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -206,6 +208,22 @@
         logger.error(errMessage);
       }
     }
+    catch (EOFException e)
+    {
+      // V4 and later peers send StopMsg before an orderly close unless their session recorded an error.
+      if (!handler.shuttingDown() && !session.closeInitiated()
+          && session.getProtocolVersion() >= ProtocolVersion.REPLICATION_PROTOCOL_V4)
+      {
+        logException(e);
+        errMessage = handler.getBadlyDisconnectedErrorMessage();
+        logger.error(errMessage);
+      }
+      else
+      {
+        errMessage = NOTE_READER_EXCEPTION.get(handler, stackTraceToSingleLineString(e));
+        logger.info(errMessage);
+      }
+    }
     catch (Exception e)
     {
       /*

--
Gitblit v1.10.0