From 0df071f4aab05eb5aee458d2aafb48c0dc65b309 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 21 Jan 2008 12:10:39 +0000
Subject: [PATCH] Fix issues 2831 and 1948.
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndexBuilder.java | 50 ++++++++++++++++++++++++--------------------------
1 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndexBuilder.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndexBuilder.java
index 82188e9..a30db7a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndexBuilder.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndexBuilder.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006-2007 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2008 Sun Microsystems, Inc.
*/
package org.opends.server.backends.jeb;
@@ -56,29 +56,29 @@
public class AttributeIndexBuilder implements IndexBuilder
{
/**
- * The import context.
+ * The directory in which temporary merge files are held.
*/
- private ImportContext importContext;
+ private final File tempDir;
/**
* The index database.
*/
- private Index index;
+ private final Index index;
/**
* The indexer to generate the index keys.
*/
- private Indexer indexer;
+ private final Indexer indexer;
/**
* The write buffer.
*/
- ArrayList<IndexMod> buffer;
+ private ArrayList<IndexMod> buffer;
/**
* The write buffer size.
*/
- private int bufferSize;
+ private final int bufferSize;
/**
* Current output file number.
@@ -86,31 +86,28 @@
private int fileNumber = 0;
/**
- * The index entry limit.
- */
- private int entryLimit;
-
- /**
* A unique prefix for temporary files to prevent conflicts.
*/
- private String fileNamePrefix;
+ private final String fileNamePrefix;
/**
* Indicates whether we are replacing existing data or not.
*/
- private boolean replaceExisting = false;
+ private final boolean replaceExisting;
- private ByteArrayOutputStream addBytesStream = new ByteArrayOutputStream();
- private ByteArrayOutputStream delBytesStream = new ByteArrayOutputStream();
+ private final ByteArrayOutputStream addBytesStream =
+ new ByteArrayOutputStream();
+ private final ByteArrayOutputStream delBytesStream =
+ new ByteArrayOutputStream();
- private DataOutputStream addBytesDataStream;
- private DataOutputStream delBytesDataStream;
+ private final DataOutputStream addBytesDataStream;
+ private final DataOutputStream delBytesDataStream;
/**
* A file name filter to identify temporary files we have written.
*/
- private FilenameFilter filter = new FilenameFilter()
+ private final FilenameFilter filter = new FilenameFilter()
{
public boolean accept(File d, String name)
{
@@ -129,10 +126,13 @@
public AttributeIndexBuilder(ImportContext importContext,
Index index, int entryLimit, long bufferSize)
{
- this.importContext = importContext;
+ File parentDir = getFileForPath(importContext.getConfig()
+ .getImportTempDirectory());
+ this.tempDir = new File(parentDir,
+ importContext.getConfig().getBackendId());
+
this.index = index;
this.indexer = index.indexer;
- this.entryLimit = entryLimit;
this.bufferSize = (int)bufferSize/100;
long tid = Thread.currentThread().getId();
fileNamePrefix = index.getName() + "_" + tid + "_";
@@ -149,8 +149,6 @@
public void startProcessing()
{
// Clean up any work files left over from a previous run.
- File tempDir = getFileForPath(
- importContext.getConfig().getImportTempDirectory());
File[] files = tempDir.listFiles(filter);
if (files != null)
{
@@ -225,6 +223,8 @@
return index.getEntryLimitExceededCount();
}
+
+
/**
* Record the insertion of an entry ID.
* @param key The index key.
@@ -299,9 +299,7 @@
// Start a new file.
fileNumber++;
String fileName = fileNamePrefix + String.valueOf(fileNumber);
- File file = new File(getFileForPath(
- importContext.getConfig().getImportTempDirectory()),
- fileName);
+ File file = new File(tempDir, fileName);
BufferedOutputStream bufferedStream =
new BufferedOutputStream(new FileOutputStream(file));
DataOutputStream dataStream = new DataOutputStream(bufferedStream);
--
Gitblit v1.10.0