From 9bb016496b6e3594f3555f6b1bb80ceadb6cbba5 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 01 Aug 2013 10:38:29 +0000
Subject: [PATCH] Fix OPENDJ-1105: Rest2LDAP never returns a response when invalid parameters or content are provided on Jetty 8
---
opendj3/opendj-rest2ldap-servlet/src/main/java/org/forgerock/opendj/rest2ldap/servlet/Rest2LDAPAuthnFilter.java | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/opendj3/opendj-rest2ldap-servlet/src/main/java/org/forgerock/opendj/rest2ldap/servlet/Rest2LDAPAuthnFilter.java b/opendj3/opendj-rest2ldap-servlet/src/main/java/org/forgerock/opendj/rest2ldap/servlet/Rest2LDAPAuthnFilter.java
index 6e6fbd5..28b2ef2 100644
--- a/opendj3/opendj-rest2ldap-servlet/src/main/java/org/forgerock/opendj/rest2ldap/servlet/Rest2LDAPAuthnFilter.java
+++ b/opendj3/opendj-rest2ldap-servlet/src/main/java/org/forgerock/opendj/rest2ldap/servlet/Rest2LDAPAuthnFilter.java
@@ -446,6 +446,17 @@
if (sync.isAsync()) {
try {
chain.doFilter(request, response);
+
+ /*
+ * Fix for OPENDJ-1105: Jetty 8 a bug where
+ * synchronous downstream completion (i.e. in
+ * the servlet) is ignored due to upstream
+ * active async context. The following code
+ * should be benign in other containers.
+ */
+ if (response.isCommitted()) {
+ sync.signalAndComplete();
+ }
} catch (Throwable t) {
sync.signalAndComplete(asResourceException(t));
}
--
Gitblit v1.10.0