From 0cdc4f67dfc0e2fb8b83d5f0de8188ec3686d04c Mon Sep 17 00:00:00 2001
From: floblanc <floblanc@localhost>
Date: Tue, 10 Nov 2009 13:59:02 +0000
Subject: [PATCH] Fix Issue 4344 CompareOperation API does not support attribute options and Issue CompareOperationBasis does not properly handle get/setAttributeType.
---
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java | 39 ++++++---------------------------------
1 files changed, 6 insertions(+), 33 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
index a1c8031..1c42ff6 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
@@ -28,8 +28,8 @@
-import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.locks.Lock;
import org.opends.server.api.Backend;
@@ -315,39 +315,10 @@
// Get the base attribute type and set of options.
- String baseName;
- HashSet<String> options;
- String rawAttributeType = getRawAttributeType();
- int semicolonPos = rawAttributeType.indexOf(';');
- if (semicolonPos > 0)
- {
- baseName = toLowerCase(rawAttributeType.substring(0, semicolonPos));
-
- options = new HashSet<String>();
- int nextPos = rawAttributeType.indexOf(';', semicolonPos+1);
- while (nextPos > 0)
- {
- options.add(rawAttributeType.substring(semicolonPos+1, nextPos));
- semicolonPos = nextPos;
- nextPos = rawAttributeType.indexOf(';', semicolonPos+1);
- }
-
- options.add(rawAttributeType.substring(semicolonPos+1));
- }
- else
- {
- baseName = toLowerCase(rawAttributeType);
- options = null;
- }
-
+ Set<String> options = getAttributeOptions();
// Actually perform the compare operation.
AttributeType attrType = getAttributeType();
- if (attrType == null)
- {
- attrType = DirectoryServer.getAttributeType(baseName, true);
- setAttributeType(attrType);
- }
List<Attribute> attrList = entry.getAttribute(attrType, options);
if ((attrList == null) || attrList.isEmpty())
@@ -356,12 +327,14 @@
if (options == null)
{
appendErrorMessage(WARN_COMPARE_OP_NO_SUCH_ATTR.get(
- String.valueOf(entryDN), baseName));
+ String.valueOf(entryDN),
+ getRawAttributeType()));
}
else
{
appendErrorMessage(WARN_COMPARE_OP_NO_SUCH_ATTR_WITH_OPTIONS.get(
- String.valueOf(entryDN), baseName));
+ String.valueOf(entryDN),
+ getRawAttributeType()));
}
}
else
--
Gitblit v1.10.0