From 440d0439d1555479f601a5ac86ae635fa2b8701f Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 14 Jun 2013 18:10:12 +0000
Subject: [PATCH] Fix OPENDJ-975: REST DELETE fails with HTTP result code 404 but it http-access it is 200

---
 opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java
index b6b3eac..ad470ef 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java
@@ -920,8 +920,11 @@
         return new QueryResultHandler() {
             @Override
             public void handleError(final ResourceException error) {
-                c.close();
-                handler.handleError(error);
+                try {
+                    handler.handleError(error);
+                } finally {
+                    c.close();
+                }
             }
 
             @Override
@@ -931,8 +934,11 @@
 
             @Override
             public void handleResult(final QueryResult result) {
-                c.close();
-                handler.handleResult(result);
+                try {
+                    handler.handleResult(result);
+                } finally {
+                    c.close();
+                }
             }
         };
     }
@@ -941,14 +947,20 @@
         return new ResultHandler<V>() {
             @Override
             public void handleError(final ResourceException error) {
-                c.close();
-                handler.handleError(error);
+                try {
+                    handler.handleError(error);
+                } finally {
+                    c.close();
+                }
             }
 
             @Override
             public void handleResult(final V result) {
-                c.close();
-                handler.handleResult(result);
+                try {
+                    handler.handleResult(result);
+                } finally {
+                    c.close();
+                }
             }
         };
     }

--
Gitblit v1.10.0