From 93b66e078bb0cffd14816c082eb0923f665fc279 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Fri, 25 Nov 2016 16:49:34 +0000
Subject: [PATCH] Minor fix: throw IllegalStateException on multiple subscriber.
---
opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java
index 723fdb6..7c91eeb 100644
--- a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java
+++ b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java
@@ -347,6 +347,19 @@
@Override
public void subscribe(final Subscriber<? super LdapRequestEnvelope> subscriber) {
if (downstream != null) {
+ // https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.0/README.md#specification
+ // #1.9: ... the only legal way to signal failure (or reject the Subscriber) is by calling
+ // onError (after calling onSubscribe).
+ subscriber.onSubscribe(new Subscription() {
+ @Override
+ public void request(long n) {
+ }
+
+ @Override
+ public void cancel() {
+ }
+ });
+ subscriber.onError(new IllegalStateException("read() cannot be subscribed multiple times"));
return;
}
downstream = new GrizzlyBackpressureSubscription(subscriber);
--
Gitblit v1.10.0