From 0d247e6c0ecf6067d69dc063948bac0eebe37ff2 Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Thu, 05 Oct 2006 17:01:32 +0000
Subject: [PATCH] Fixes for issues 755 and 743
---
opends/src/server/org/opends/server/backends/jeb/VerifyJob.java | 76 +++++++++++++++++++------------------
1 files changed, 39 insertions(+), 37 deletions(-)
diff --git a/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java b/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
index 3fda5c2..5a1501c 100644
--- a/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
+++ b/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
@@ -177,6 +177,13 @@
* A list of the attribute indexes to be verified.
*/
ArrayList<AttributeIndex> attrIndexList = new ArrayList<AttributeIndex>();
+/**
+ * The types of indexes that are verifiable.
+ */
+ enum IndexType
+ {
+ PRES, EQ, SUBSTRING, ORDERING;
+ }
/**
* Construct a VerifyJob.
@@ -286,34 +293,27 @@
// Make a note of the time we started.
long startTime = System.currentTimeMillis();
+ // Start a timer for the progress report.
+ Timer timer = new Timer();
+ TimerTask progressTask = new ProgressTask();
+ timer.scheduleAtFixedRate(progressTask, progressInterval,
+ progressInterval);
+
+ // Iterate through the index keys.
try
{
- // Start a timer for the progress report.
- Timer timer = new Timer();
- TimerTask progressTask = new ProgressTask();
- timer.scheduleAtFixedRate(progressTask, progressInterval,
- progressInterval);
-
- // Iterate through the index keys.
- try
+ if (cleanMode)
{
- if (cleanMode)
- {
iterateIndex();
- }
- else
- {
- iterateID2Entry();
- }
}
- finally
+ else
{
- timer.cancel();
+ iterateID2Entry();
}
}
finally
{
- entryContainer.close();
+ timer.cancel();
}
long finishTime = System.currentTimeMillis();
@@ -517,11 +517,14 @@
else
{
AttributeIndex attrIndex = attrIndexList.get(0);
-
- iterateAttrIndex(attrIndex.getAttributeType(), attrIndex.equalityIndex);
- iterateAttrIndex(attrIndex.getAttributeType(), attrIndex.presenceIndex);
- iterateAttrIndex(attrIndex.getAttributeType(), attrIndex.substringIndex);
- iterateAttrIndex(attrIndex.getAttributeType(), attrIndex.orderingIndex);
+ iterateAttrIndex(attrIndex.getAttributeType(),
+ attrIndex.equalityIndex, IndexType.EQ );
+ iterateAttrIndex(attrIndex.getAttributeType(),
+ attrIndex.presenceIndex, IndexType.PRES);
+ iterateAttrIndex(attrIndex.getAttributeType(),
+ attrIndex.substringIndex, IndexType.SUBSTRING);
+ iterateAttrIndex(attrIndex.getAttributeType(),
+ attrIndex.orderingIndex, IndexType.ORDERING);
}
}
@@ -917,7 +920,8 @@
* @throws JebException If an error occurs in the JE backend.
* @throws DatabaseException If an error occurs in the JE database.
*/
- private void iterateAttrIndex(AttributeType attrType, Index index)
+ private void iterateAttrIndex(AttributeType attrType,
+ Index index, IndexType indexType)
throws JebException, DatabaseException
{
if (index == null)
@@ -962,31 +966,29 @@
byte[] bytes;
SearchFilter sf;
- switch (value[0])
+ switch (indexType)
{
- case '*':
- bytes = new byte[value.length-1];
- System.arraycopy(value, 1, bytes, 0, value.length-1);
-
+ case SUBSTRING:
ArrayList<ByteString> subAnyElements =
new ArrayList<ByteString>(1);
- subAnyElements.add(new ASN1OctetString(bytes));
+ subAnyElements.add(new ASN1OctetString(value));
sf = SearchFilter.createSubstringFilter(attrType,null,
subAnyElements,null);
break;
-
- case '=':
- bytes = new byte[value.length-1];
- System.arraycopy(value, 1, bytes, 0, value.length-1);
-
+ /* TODO
+ * This ORDERING case needs further study
+ * about what type of SearchFilter should be created.
+ * case ORDERING:
+ * */
+ case EQ:
AttributeValue assertionValue =
- new AttributeValue(attrType, new ASN1OctetString(bytes));
+ new AttributeValue(attrType, new ASN1OctetString(value));
sf = SearchFilter.createEqualityFilter(attrType,assertionValue);
break;
- case '+':
+ case PRES:
sf = SearchFilter.createPresenceFilter(attrType);
break;
--
Gitblit v1.10.0