From ba6deb90899c025c0bd5e8b2bb169a90daa0e2aa Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 16 Dec 2014 10:13:02 +0000
Subject: [PATCH] OPENDJ-1602 (CR-5566) New pluggable storage based backend
---
opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java | 8
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestVerifyJob.java | 15 +
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SuffixContainer.java | 2
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java | 25 ++-
opendj3-server-dev/src/server/org/opends/server/backends/jeb/SortValuesSet.java | 98 ++++++++--------
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java | 12 -
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/EntryContainer.java | 31 ++--
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/JebFormat.java | 14 --
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SortValuesSet.java | 103 ++++++++--------
9 files changed, 150 insertions(+), 158 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SortValuesSet.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SortValuesSet.java
index a4d6eb7..03e9c4e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SortValuesSet.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SortValuesSet.java
@@ -38,8 +38,7 @@
import com.sleepycat.je.DatabaseException;
/**
- * This class represents a partial sorted set of sorted entries in a VLV
- * index.
+ * This class represents a partial sorted set of sorted entries in a VLV index.
*/
public class SortValuesSet
{
@@ -96,7 +95,19 @@
{}
/**
- * Add the given entryID and values from this VLV idnex.
+ * Add the given entryID and values from these sort values.
+ *
+ * @param sv The sort values to add.
+ * @throws DirectoryException If a Directory Server error occurs.
+ * @throws DatabaseException If an error occurs in the JE database.
+ */
+ void add(SortValues sv) throws DatabaseException, DirectoryException
+ {
+ add(sv.getEntryID(), sv.getValues(), sv.getTypes());
+ }
+
+ /**
+ * Add the given entryID and values from this VLV index.
*
* @param entryID The entry ID to add.
* @param values The values to add.
@@ -216,21 +227,17 @@
}
/**
- * Remove the given entryID and values from this VLV idnex.
+ * Remove the given entryID and values from these sort values.
*
- * @param entryID The entry ID to remove.
- * @param values The values to remove.
- * @return True if the information was successfully removed or False
- * otherwise.
+ * @param sv The sort values to remove.
* @throws DirectoryException If a Directory Server error occurs.
* @throws DatabaseException If an error occurs in the JE database.
*/
- public boolean remove(long entryID, ByteString[] values)
- throws DatabaseException, DirectoryException
+ void remove(SortValues sv) throws DatabaseException, DirectoryException
{
if(entryIDs == null || entryIDs.length == 0)
{
- return false;
+ return;
}
if(valuesBytesOffsets == null)
@@ -238,50 +245,45 @@
updateValuesBytesOffsets();
}
- int pos = binarySearch(entryID, values);
+ int pos = binarySearch(sv.getEntryID(), sv.getValues());
if(pos < 0)
{
// Not found.
- return false;
+ return;
+ }
+
+ // Found it.
+ long[] updatedEntryIDs = new long[entryIDs.length - 1];
+ System.arraycopy(entryIDs, 0, updatedEntryIDs, 0, pos);
+ System.arraycopy(entryIDs, pos+1, updatedEntryIDs, pos,
+ entryIDs.length-pos-1);
+ int valuesLength;
+ int valuesPos = valuesBytesOffsets[pos];
+ if(pos < valuesBytesOffsets.length - 1)
+ {
+ valuesLength = valuesBytesOffsets[pos+1] - valuesPos;
}
else
{
- // Found it.
- long[] updatedEntryIDs = new long[entryIDs.length - 1];
- System.arraycopy(entryIDs, 0, updatedEntryIDs, 0, pos);
- System.arraycopy(entryIDs, pos+1, updatedEntryIDs, pos,
- entryIDs.length-pos-1);
- int valuesLength;
- int valuesPos = valuesBytesOffsets[pos];
- if(pos < valuesBytesOffsets.length - 1)
- {
- valuesLength = valuesBytesOffsets[pos+1] - valuesPos;
- }
- else
- {
- valuesLength = valuesBytes.length - valuesPos;
- }
- byte[] updatedValuesBytes = new byte[valuesBytes.length - valuesLength];
- System.arraycopy(valuesBytes, 0, updatedValuesBytes, 0, valuesPos);
- System.arraycopy(valuesBytes, valuesPos + valuesLength,
- updatedValuesBytes, valuesPos,
- valuesBytes.length - valuesPos - valuesLength);
-
- int[] updatedValuesBytesOffsets = new int[valuesBytesOffsets.length - 1];
- System.arraycopy(valuesBytesOffsets, 0, updatedValuesBytesOffsets,
- 0, pos);
- // Update the rest of the offsets one by one - Expensive!
- for(int i = pos + 1; i < valuesBytesOffsets.length; i++)
- {
- updatedValuesBytesOffsets[i-1] =
- valuesBytesOffsets[i] - valuesLength;
- }
-
- entryIDs = updatedEntryIDs;
- valuesBytes = updatedValuesBytes;
- valuesBytesOffsets = updatedValuesBytesOffsets;
- return true;
+ valuesLength = valuesBytes.length - valuesPos;
}
+ byte[] updatedValuesBytes = new byte[valuesBytes.length - valuesLength];
+ System.arraycopy(valuesBytes, 0, updatedValuesBytes, 0, valuesPos);
+ System.arraycopy(valuesBytes, valuesPos + valuesLength,
+ updatedValuesBytes, valuesPos,
+ valuesBytes.length - valuesPos - valuesLength);
+
+ int[] updatedValuesBytesOffsets = new int[valuesBytesOffsets.length - 1];
+ System.arraycopy(valuesBytesOffsets, 0, updatedValuesBytesOffsets, 0, pos);
+ // Update the rest of the offsets one by one - Expensive!
+ for(int i = pos + 1; i < valuesBytesOffsets.length; i++)
+ {
+ updatedValuesBytesOffsets[i - 1] = valuesBytesOffsets[i] - valuesLength;
+ }
+
+ entryIDs = updatedEntryIDs;
+ valuesBytes = updatedValuesBytes;
+ valuesBytesOffsets = updatedValuesBytesOffsets;
}
/**
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
index c851ebb..1032a1b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
@@ -644,13 +644,13 @@
// This is the last unbounded set.
while(av != null)
{
- sortValuesSet.add(av.getEntryID(), av.getValues(), av.getTypes());
+ sortValuesSet.add(av);
av = moveToNextSortValues(aValues);
}
while(dv != null)
{
- sortValuesSet.remove(dv.getEntryID(), dv.getValues());
+ sortValuesSet.remove(dv);
dv = moveToNextSortValues(dValues);
}
}
@@ -660,13 +660,13 @@
while(av != null && av.compareTo(maxValues) <= 0)
{
- sortValuesSet.add(av.getEntryID(), av.getValues(), av.getTypes());
+ sortValuesSet.add(av);
av = moveToNextSortValues(aValues);
}
while(dv != null && dv.compareTo(maxValues) <= 0)
{
- sortValuesSet.remove(dv.getEntryID(), dv.getValues());
+ sortValuesSet.remove(dv);
dv = moveToNextSortValues(dValues);
}
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/EntryContainer.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/EntryContainer.java
index 2227cd3..a9ebc68 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/EntryContainer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/EntryContainer.java
@@ -1256,7 +1256,7 @@
/**
* Returns the entry corresponding to the provided entryID.
- *
+ *
* @param entryID
* the id of the entry to retrieve
* @return the entry corresponding to the provided entryID
@@ -1323,7 +1323,7 @@
// The cookie contains the ID of the next entry to be returned.
try
{
- begin = new EntryID(pageRequest.getCookie().toLong());
+ begin = new EntryID(pageRequest.getCookie());
}
catch (Exception e)
{
@@ -1876,7 +1876,7 @@
indexRemoveEntry(indexBuffer, entry, leafID);
// Remove the id2c and id2s records for this entry.
- final ByteString leafIDKeyBytes = ByteString.valueOf(leafID.longValue());
+ final ByteString leafIDKeyBytes = leafID.toByteString();
id2children.delete(indexBuffer, leafIDKeyBytes);
id2subtree.delete(indexBuffer, leafIDKeyBytes);
@@ -1892,7 +1892,7 @@
throw new JebException(ERR_JEB_MISSING_DN2ID_RECORD.get(parentDN));
}
- ByteString parentIDBytes = ByteString.valueOf(parentID.longValue());
+ ByteString parentIDBytes = parentID.toByteString();
// Remove from id2children.
if (isParent)
{
@@ -2259,8 +2259,8 @@
{
logger.trace("Move of target entry requires renumbering" + "all entries in the subtree. "
+ "Old DN: %s " + "New DN: %s " + "Old entry ID: %d " + "New entry ID: %d "
- + "New Superior ID: %d" + oldApexEntry.getName(), entry.getName(), oldApexID.longValue(),
- newApexID.longValue(), newSuperiorID.longValue());
+ + "New Superior ID: %d" + oldApexEntry.getName(), entry.getName(), oldApexID,
+ newApexID, newSuperiorID);
}
}
}
@@ -2328,9 +2328,9 @@
if (logger.isTraceEnabled())
{
- logger.trace("Move of subordinate entry requires " + "renumbering. " + "Old DN: %s "
- + "New DN: %s " + "Old entry ID: %d " + "New entry ID: %d", oldEntry.getName(), newDN, oldID
- .longValue(), newID.longValue());
+ logger.trace("Move of subordinate entry requires renumbering. "
+ + "Old DN: %s New DN: %s Old entry ID: %d New entry ID: %d",
+ oldEntry.getName(), newDN, oldID, newID);
}
}
@@ -2459,7 +2459,7 @@
dn = getParentWithinBase(dn))
{
EntryID parentID = dn2id.get(txn, dn, false);
- ByteString parentIDKeyBytes = ByteString.valueOf(parentID.longValue());
+ ByteString parentIDKeyBytes = parentID.toByteString();
if(isParent)
{
id2children.insertID(buffer, parentIDKeyBytes, newID);
@@ -2504,7 +2504,7 @@
for (DN dn = oldSuperiorDN; dn != null; dn = getParentWithinBase(dn))
{
EntryID parentID = dn2id.get(txn, dn, false);
- ByteString parentIDKeyBytes = ByteString.valueOf(parentID.longValue());
+ ByteString parentIDKeyBytes = parentID.toByteString();
if(isParent)
{
id2children.removeID(buffer, parentIDKeyBytes, oldID);
@@ -2518,7 +2518,7 @@
{
// All the subordinates will be renumbered so we have to rebuild
// id2c and id2s with the new ID.
- ByteString oldIDKeyBytes = ByteString.valueOf(oldID.longValue());
+ ByteString oldIDKeyBytes = oldID.toByteString();
id2children.delete(buffer, oldIDKeyBytes);
id2subtree.delete(buffer, oldIDKeyBytes);
@@ -2610,7 +2610,7 @@
for (DN dn = oldSuperiorDN; dn != null; dn = getParentWithinBase(dn))
{
EntryID parentID = dn2id.get(txn, dn, false);
- ByteString parentIDKeyBytes = ByteString.valueOf(parentID.longValue());
+ ByteString parentIDKeyBytes = parentID.toByteString();
id2subtree.removeID(buffer, parentIDKeyBytes, oldID);
}
}
@@ -2619,7 +2619,7 @@
{
// All the subordinates will be renumbered so we have to rebuild
// id2c and id2s with the new ID.
- ByteString oldIDKeyBytes = ByteString.valueOf(oldID.longValue());
+ ByteString oldIDKeyBytes = oldID.toByteString();
id2children.delete(buffer, oldIDKeyBytes);
id2subtree.delete(buffer, oldIDKeyBytes);
@@ -2758,8 +2758,7 @@
EntryID entryID = dn2id.get(null, baseDN, false);
if (entryID != null)
{
- ByteString key = entryIDToDatabase(entryID.longValue());
- EntryIDSet entryIDSet = id2subtree.readKey(key, null);
+ EntryIDSet entryIDSet = id2subtree.readKey(entryID.toByteString(), null);
long count = entryIDSet.size();
if(count != Long.MAX_VALUE)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/JebFormat.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/JebFormat.java
index 9096baa..383b0b4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/JebFormat.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/JebFormat.java
@@ -169,18 +169,6 @@
}
/**
- * Encode an entry ID value to its database representation.
- *
- * @param id The entry ID value to be encoded.
- * @return The encoded database value of the entry ID.
- * @see #entryIDFromDatabase(byte[])
- */
- public static ByteString entryIDToDatabase(long id)
- {
- return ByteString.valueOf(id);
- }
-
- /**
* Encode an entry ID set count to its database representation.
*
* @param count The entry ID set count to be encoded.
@@ -205,7 +193,6 @@
*
* @param entryIDArray An array of entry ID values.
* @return The encoded database value.
- * @see #entryIDListFromDatabase(byte[])
*/
public static byte[] entryIDListToDatabase(long[] entryIDArray)
{
@@ -342,7 +329,6 @@
* @param prefixRDNs The number of prefix RDNs to remove from the encoded
* representation.
* @return A ByteString containing the key.
- * @see #dnFromDNKey(byte[], int, int, DN)
*/
public static ByteString dnToDNKey(DN dn, int prefixRDNs)
{
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SortValuesSet.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SortValuesSet.java
index 824f32a..64d3009 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SortValuesSet.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SortValuesSet.java
@@ -36,13 +36,8 @@
import org.opends.server.types.DirectoryException;
import org.opends.server.types.SortKey;
-import static org.opends.server.backends.pluggable.JebFormat.*;
-
-
-
/**
- * This class represents a partial sorted set of sorted entries in a VLV
- * index.
+ * This class represents a partial sorted set of sorted entries in a VLV index.
*/
public class SortValuesSet
{
@@ -99,6 +94,19 @@
{}
/**
+ * Add the given entryID and values from these sort values.
+ *
+ * @param sv The sort values to add.
+ * @param types The types of the values to add.
+ * @throws DirectoryException If a Directory Server error occurs.
+ * @throws DatabaseException If an error occurs in the JE database.
+ */
+ void add(SortValues sv) throws DirectoryException
+ {
+ add(sv.getEntryID(), sv.getValues(), sv.getTypes());
+ }
+
+ /**
* Add the given entryID and values from this VLV index.
*
* @param entryID The entry ID to add.
@@ -219,21 +227,17 @@
}
/**
- * Remove the given entryID and values from this VLV index.
+ * Remove the given entryID and values from these sort values.
*
- * @param entryID The entry ID to remove.
- * @param values The values to remove.
- * @return True if the information was successfully removed or False
- * otherwise.
+ * @param sv The sort values to remove.
* @throws DirectoryException If a Directory Server error occurs.
* @throws StorageRuntimeException If an error occurs in the JE database.
*/
- public boolean remove(long entryID, ByteString[] values)
- throws StorageRuntimeException, DirectoryException
+ void remove(SortValues sv) throws DirectoryException
{
if(entryIDs == null || entryIDs.length == 0)
{
- return false;
+ return;
}
if(valuesBytesOffsets == null)
@@ -241,50 +245,45 @@
updateValuesBytesOffsets();
}
- int pos = binarySearch(entryID, values);
+ int pos = binarySearch(sv.getEntryID(), sv.getValues());
if(pos < 0)
{
// Not found.
- return false;
+ return;
+ }
+
+ // Found it.
+ long[] updatedEntryIDs = new long[entryIDs.length - 1];
+ System.arraycopy(entryIDs, 0, updatedEntryIDs, 0, pos);
+ System.arraycopy(entryIDs, pos + 1, updatedEntryIDs, pos,
+ entryIDs.length - pos - 1);
+ int valuesLength;
+ int valuesPos = valuesBytesOffsets[pos];
+ if (pos < valuesBytesOffsets.length - 1)
+ {
+ valuesLength = valuesBytesOffsets[pos + 1] - valuesPos;
}
else
{
- // Found it.
- long[] updatedEntryIDs = new long[entryIDs.length - 1];
- System.arraycopy(entryIDs, 0, updatedEntryIDs, 0, pos);
- System.arraycopy(entryIDs, pos+1, updatedEntryIDs, pos,
- entryIDs.length-pos-1);
- int valuesLength;
- int valuesPos = valuesBytesOffsets[pos];
- if(pos < valuesBytesOffsets.length - 1)
- {
- valuesLength = valuesBytesOffsets[pos+1] - valuesPos;
- }
- else
- {
- valuesLength = valuesBytes.length - valuesPos;
- }
- byte[] updatedValuesBytes = new byte[valuesBytes.length - valuesLength];
- System.arraycopy(valuesBytes, 0, updatedValuesBytes, 0, valuesPos);
- System.arraycopy(valuesBytes, valuesPos + valuesLength,
- updatedValuesBytes, valuesPos,
- valuesBytes.length - valuesPos - valuesLength);
-
- int[] updatedValuesBytesOffsets = new int[valuesBytesOffsets.length - 1];
- System.arraycopy(valuesBytesOffsets, 0, updatedValuesBytesOffsets,
- 0, pos);
- // Update the rest of the offsets one by one - Expensive!
- for(int i = pos + 1; i < valuesBytesOffsets.length; i++)
- {
- updatedValuesBytesOffsets[i-1] =
- valuesBytesOffsets[i] - valuesLength;
- }
-
- entryIDs = updatedEntryIDs;
- valuesBytes = updatedValuesBytes;
- valuesBytesOffsets = updatedValuesBytesOffsets;
- return true;
+ valuesLength = valuesBytes.length - valuesPos;
}
+ byte[] updatedValuesBytes = new byte[valuesBytes.length - valuesLength];
+ System.arraycopy(valuesBytes, 0, updatedValuesBytes, 0, valuesPos);
+ System.arraycopy(valuesBytes, valuesPos + valuesLength,
+ updatedValuesBytes, valuesPos,
+ valuesBytes.length - valuesPos - valuesLength);
+
+ int[] updatedValuesBytesOffsets = new int[valuesBytesOffsets.length - 1];
+ System.arraycopy(valuesBytesOffsets, 0, updatedValuesBytesOffsets, 0, pos);
+ // Update the rest of the offsets one by one - Expensive!
+ for (int i = pos + 1; i < valuesBytesOffsets.length; i++)
+ {
+ updatedValuesBytesOffsets[i - 1] = valuesBytesOffsets[i] - valuesLength;
+ }
+
+ entryIDs = updatedEntryIDs;
+ valuesBytes = updatedValuesBytes;
+ valuesBytesOffsets = updatedValuesBytesOffsets;
}
/**
@@ -537,7 +536,7 @@
int vBytesPos = valuesBytesOffsets[valuesBytesOffsets.length - 1];
int vBytesLength = valuesBytes.length - vBytesPos;
- ByteString idBytes = entryIDToDatabase(entryIDs[entryIDs.length - 1]);
+ ByteString idBytes = ByteString.valueOf(entryIDs[entryIDs.length - 1]);
ByteStringBuilder keyBytes = new ByteStringBuilder(vBytesLength + idBytes.length());
keyBytes.append(valuesBytes, vBytesPos, vBytesLength);
keyBytes.append(idBytes);
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SuffixContainer.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SuffixContainer.java
index 9f92e16..8103cf3 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SuffixContainer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SuffixContainer.java
@@ -27,8 +27,6 @@
import java.io.Closeable;
import org.opends.server.types.DN;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.types.Entry;
/**
* Container for a whole suffix environment which stores all entries from the
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
index 2eaf778..37001ee 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
@@ -634,13 +634,13 @@
// This is the last unbounded set.
while(av != null)
{
- sortValuesSet.add(av.getEntryID(), av.getValues(), av.getTypes());
+ sortValuesSet.add(av);
av = moveToNextSortValues(aValues);
}
while(dv != null)
{
- sortValuesSet.remove(dv.getEntryID(), dv.getValues());
+ sortValuesSet.remove(dv);
dv = moveToNextSortValues(dValues);
}
}
@@ -650,13 +650,13 @@
while(av != null && av.compareTo(maxValues) <= 0)
{
- sortValuesSet.add(av.getEntryID(), av.getValues(), av.getTypes());
+ sortValuesSet.add(av);
av = moveToNextSortValues(aValues);
}
while(dv != null && dv.compareTo(maxValues) <= 0)
{
- sortValuesSet.remove(dv.getEntryID(), dv.getValues());
+ sortValuesSet.remove(dv);
dv = moveToNextSortValues(dValues);
}
}
@@ -701,11 +701,6 @@
return null;
}
- private ByteString encodeKey(SortValues sv) throws DirectoryException
- {
- return encodeKey(sv.getEntryID(), sv.getValues(), sv.getTypes());
- }
-
/**
* Evaluate a search with sort control using this VLV index.
*
@@ -1093,6 +1088,18 @@
}
/**
+ * Encode a VLV database key with the provided sort values.
+ *
+ * @param sv the sort values to encode
+ * @return The encoded bytes.
+ * @throws DirectoryException If a Directory Server error occurs.
+ */
+ ByteString encodeKey(SortValues sv) throws DirectoryException
+ {
+ return encodeKey(sv.getEntryID(), sv.getValues(), sv.getTypes());
+ }
+
+ /**
* Encode a VLV database key with the given information.
*
* @param entryID The entry ID to encode.
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java
index a836d8d..5b8ef1e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java
@@ -773,9 +773,7 @@
logger.traceException(e);
logger.trace("File id2subtree has malformed ID list " +
- "for ID %s:%n%s%n", entryID,
- StaticUtils
- .bytesToHex(value));
+ "for ID %s:%n%s%n", entryID, StaticUtils.bytesToHex(value));
}
continue;
}
@@ -826,7 +824,7 @@
if (logger.isTraceEnabled())
{
logger.trace("File id2subtree has ID %d referencing " +
- "unknown ID %d%n", entryID, id);
+ "unknown ID %d%n", entryID, id);
}
continue;
}
@@ -838,8 +836,7 @@
{
logger.trace("File id2subtree has ID %d with DN <%s> " +
"referencing ID %d with non-subordinate DN <%s>%n",
- entryID, entry.getName(), id, subordEntry
- .getName());
+ entryID, entry.getName(), id, subordEntry.getName());
}
}
}
@@ -950,8 +947,7 @@
{
// If this is the last one in a bounded set, make sure it is the
// same as the database key.
- ByteString encodedKey = vlvIndex.encodeKey(
- values.getEntryID(), values.getValues(), values.getTypes());
+ ByteString encodedKey = vlvIndex.encodeKey(values);
if (!key.equals(encodedKey))
{
if(logger.isTraceEnabled())
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestVerifyJob.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestVerifyJob.java
index 9d68cb5..c3c5b26 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestVerifyJob.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestVerifyJob.java
@@ -411,7 +411,7 @@
ByteString[] badValues = new ByteString[values.length];
System.arraycopy(values, 1, badValues, 0, values.length - 1);
badValues[badValues.length-1] = values[0];
- svs.remove(id, values);
+ remove(svs, id, values);
svs.add(id, badValues, types);
putSortValuesSet(vlvIndex, svs);
@@ -455,7 +455,7 @@
DatabaseEntry data= new DatabaseEntry(entryBytes.toByteArray());
assertEquals(id2entry.put(txn, key, data), OperationStatus.SUCCESS);
- //add entry with ramdom bytes
+ // add entry with random bytes
DatabaseEntry key1= new EntryID(4).getDatabaseEntry();
byte []eBytes = new byte[459];
for(int i=0;i<459;i++) {
@@ -703,7 +703,7 @@
SortValuesSet svs = vlvIndex.getSortValuesSet(null, 0, new ByteString[3], types);
long id = svs.getEntryIDs()[0];
Entry entry = eContainer.getID2Entry().get(null, new EntryID(id), LockMode.DEFAULT);
- svs.remove(id, vlvIndex.getSortValues(entry));
+ remove(svs, id, vlvIndex.getSortValues(entry));
// Add an incorrectly ordered values.
SortValuesSet svs2 = svs.split(2);
@@ -716,7 +716,7 @@
ByteString[] badValues = new ByteString[values.length];
System.arraycopy(values, 1, badValues, 0, values.length - 1);
badValues[badValues.length-1] = values[0];
- svs.remove(id, values);
+ remove(svs, id, values);
svs.add(id, badValues, types);
putSortValuesSet(vlvIndex, svs);
@@ -729,9 +729,14 @@
}
}
+ private void remove(SortValuesSet svs, long id, ByteString[] values) throws DirectoryException
+ {
+ svs.remove(new SortValues(new EntryID(id), values, new SortOrder()));
+ }
+
/**
* Put a sort values set in this VLV index.
- *
+ *
* @param txn
* The transaction to use when retrieving the set or NULL if it is
* not required.
--
Gitblit v1.10.0