From 4255726566abd4387c586d09376ffd4efeb5f164 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 08 Apr 2014 09:09:25 +0000
Subject: [PATCH] Backport fix for OPENDJ-1354: replication threads BLOCKED in pendingChanges queue
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java
index ed74a43..6e85261 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java
@@ -180,8 +180,23 @@
} else if (msg instanceof WindowMsg)
{
handler.updateWindow((WindowMsg) msg);
- } else if (msg instanceof RoutableMsg)
+ }
+ else if (msg instanceof MonitorRequestMsg)
{
+ handler.processMonitorRequestMsg((MonitorRequestMsg) msg);
+ }
+ else if (msg instanceof MonitorMsg)
+ {
+ handler.processMonitorMsg((MonitorMsg) msg);
+ }
+ else if (msg instanceof RoutableMsg)
+ {
+ /*
+ * Note that we handle monitor messages separately since they in
+ * fact never need "routing" and are instead sent directly between
+ * connected peers. Doing so allows us to more clearly decouple
+ * write IO from the reader thread (see OPENDJ-1354).
+ */
handler.process((RoutableMsg) msg);
} else if (msg instanceof ResetGenerationIdMsg)
{
--
Gitblit v1.10.0