From 139d572584d8fe12a0f1bee2f3aeb73710685bbe Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Mon, 22 Oct 2012 14:52:18 +0000
Subject: [PATCH] Minor fixes for query processing.

---
 opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/SimpleAttributeMapper.java          |    5 +++--
 opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java       |    6 ++++--
 opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java |    2 +-
 opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ConstantAttributeMapper.java        |    4 +---
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java
index bef1872..af135f6 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java
@@ -86,8 +86,10 @@
             }
 
             public void handleResult(final Map<String, Object> result) {
-                synchronized (this) {
-                    results.add(result);
+                if (result != null && !result.isEmpty()) {
+                    synchronized (this) {
+                        results.add(result);
+                    }
                 }
                 if (latch.decrementAndGet() == 0) {
                     final Map<String, Object> mergeResult;
diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ConstantAttributeMapper.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ConstantAttributeMapper.java
index 5a2b251..9b281e8 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ConstantAttributeMapper.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ConstantAttributeMapper.java
@@ -63,9 +63,7 @@
     public void toJson(final ServerContext c, final Entry e,
             final ResultHandler<Map<String, Object>> h) {
         // FIXME: how do we know if the user requested it???
-        final Map<String, Object> result = Collections.singletonMap(jsonAttributeName,
-                jsonAttributeValue);
-        h.handleResult(result);
+        h.handleResult(Collections.singletonMap(jsonAttributeName, jsonAttributeValue));
 
     }
 
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 d5b2f67..2780f00 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
@@ -127,7 +127,7 @@
                     final ResourceException result = pendingResult.get();
                     if (result != null && resultSent.compareAndSet(false, true)) {
                         if (result == SUCCESS) {
-                            handler.handleResult(null);
+                            handler.handleResult(new QueryResult());
                         } else {
                             handler.handleError(result);
                         }
diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/SimpleAttributeMapper.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/SimpleAttributeMapper.java
index 214950b..264c7cd 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/SimpleAttributeMapper.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/SimpleAttributeMapper.java
@@ -107,8 +107,9 @@
             } else {
                 value = a.parse().asSetOf(f, defaultValue);
             }
-            final Map<String, Object> result = Collections.singletonMap(jsonAttributeName, value);
-            h.handleResult(result);
+            h.handleResult(Collections.singletonMap(jsonAttributeName, value));
+        } else {
+            h.handleResult(null);
         }
     }
 

--
Gitblit v1.10.0