From fb93ac337143c7212c183ef5dbc9cc4fa71d5831 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 20 Nov 2014 10:22:11 +0000
Subject: [PATCH] Code cleanup
---
opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java | 143 ++++++++++++++++++-----------------------------
1 files changed, 55 insertions(+), 88 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
index d6ce8e8..030dbf1 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
@@ -26,22 +26,19 @@
*/
package org.opends.server.backends.jeb;
-
-
-import static org.opends.messages.JebMessages.*;
import java.io.IOException;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.api.CompressedSchema;
-import org.opends.server.core.DirectoryServer;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1;
import org.forgerock.opendj.io.ASN1Reader;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.opendj.ldap.ByteStringBuilder;
+import org.opends.server.api.CompressedSchema;
+import org.opends.server.core.DirectoryServer;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
import org.opends.server.util.StaticUtils;
@@ -53,10 +50,12 @@
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.LockConflictException;
-import com.sleepycat.je.LockMode;
import com.sleepycat.je.OperationStatus;
+import static com.sleepycat.je.LockMode.*;
+import static com.sleepycat.je.OperationStatus.*;
+import static org.opends.messages.JebMessages.*;
/**
* This class provides a compressed schema implementation whose definitions are
@@ -64,36 +63,24 @@
*/
public final class JECompressedSchema extends CompressedSchema
{
- /**
- * The name of the database used to store compressed attribute description
- * definitions.
- */
- private static final String DB_NAME_AD = "compressed_attributes";
-
- /**
- * The name of the database used to store compressed object class set
- * definitions.
- */
- private static final String DB_NAME_OC = "compressed_object_classes";
private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
+ /** The name of the database used to store compressed attribute description definitions. */
+ private static final String DB_NAME_AD = "compressed_attributes";
+ /** The name of the database used to store compressed object class set definitions. */
+ private static final String DB_NAME_OC = "compressed_object_classes";
+
/** The compressed attribute description schema database. */
private Database adDatabase;
-
/** The environment in which the databases are held. */
private Environment environment;
-
/** The compressed object class set schema database. */
private Database ocDatabase;
- private final ByteStringBuilder storeAttributeWriterBuffer =
- new ByteStringBuilder();
- private final ASN1Writer storeAttributeWriter = ASN1
- .getWriter(storeAttributeWriterBuffer);
- private final ByteStringBuilder storeObjectClassesWriterBuffer =
- new ByteStringBuilder();
- private final ASN1Writer storeObjectClassesWriter = ASN1
- .getWriter(storeObjectClassesWriterBuffer);
+ private final ByteStringBuilder storeAttributeWriterBuffer = new ByteStringBuilder();
+ private final ASN1Writer storeAttributeWriter = ASN1.getWriter(storeAttributeWriterBuffer);
+ private final ByteStringBuilder storeObjectClassesWriterBuffer = new ByteStringBuilder();
+ private final ASN1Writer storeObjectClassesWriter = ASN1.getWriter(storeObjectClassesWriterBuffer);
@@ -125,38 +112,30 @@
*/
public void close()
{
- try
- {
- adDatabase.sync();
- }
- catch (final Exception e)
- {
- // Ignore.
- }
-
- StaticUtils.close(adDatabase);
-
- try
- {
- ocDatabase.sync();
- }
- catch (final Exception e)
- {
- // Ignore.
- }
-
- StaticUtils.close(ocDatabase);
+ close0(adDatabase);
+ close0(ocDatabase);
adDatabase = null;
ocDatabase = null;
environment = null;
}
+ private void close0(Database database)
+ {
+ try
+ {
+ database.sync();
+ }
+ catch (final Exception e)
+ {
+ // Ignore.
+ }
+ StaticUtils.close(database);
+ }
- /**
- * {@inheritDoc}
- */
+
+ /** {@inheritDoc} */
@Override
protected void storeAttribute(final byte[] encodedAttribute,
final String attributeName, final Collection<String> attributeOptions)
@@ -182,9 +161,7 @@
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
protected void storeObjectClasses(final byte[] encodedObjectClasses,
final Collection<String> objectClassNames) throws DirectoryException
@@ -250,9 +227,8 @@
{
final DatabaseEntry keyEntry = new DatabaseEntry();
final DatabaseEntry valueEntry = new DatabaseEntry();
- OperationStatus status = ocCursor.getFirst(keyEntry, valueEntry,
- LockMode.READ_UNCOMMITTED);
- while (status == OperationStatus.SUCCESS)
+ OperationStatus status = ocCursor.getFirst(keyEntry, valueEntry, READ_UNCOMMITTED);
+ while (status == SUCCESS)
{
final byte[] encodedObjectClasses = keyEntry.getData();
final ASN1Reader reader = ASN1.getReader(valueEntry.getData());
@@ -264,8 +240,7 @@
}
reader.readEndSequence();
loadObjectClasses(encodedObjectClasses, objectClassNames);
- status = ocCursor.getNext(keyEntry, valueEntry,
- LockMode.READ_UNCOMMITTED);
+ status = ocCursor.getNext(keyEntry, valueEntry, READ_UNCOMMITTED);
}
}
catch (final IOException e)
@@ -286,9 +261,8 @@
{
final DatabaseEntry keyEntry = new DatabaseEntry();
final DatabaseEntry valueEntry = new DatabaseEntry();
- OperationStatus status = adCursor.getFirst(keyEntry, valueEntry,
- LockMode.READ_UNCOMMITTED);
- while (status == OperationStatus.SUCCESS)
+ OperationStatus status = adCursor.getFirst(keyEntry, valueEntry, READ_UNCOMMITTED);
+ while (status == SUCCESS)
{
final byte[] encodedAttribute = keyEntry.getData();
final ASN1Reader reader = ASN1.getReader(valueEntry.getData());
@@ -301,8 +275,7 @@
}
reader.readEndSequence();
loadAttribute(encodedAttribute, attributeName, attributeOptions);
- status = adCursor.getNext(keyEntry, valueEntry,
- LockMode.READ_UNCOMMITTED);
+ status = adCursor.getNext(keyEntry, valueEntry, READ_UNCOMMITTED);
}
}
catch (final IOException e)
@@ -319,29 +292,31 @@
- private void store(final Database database, final byte[] key,
- final ByteStringBuilder value) throws DirectoryException
+ private void store(final Database database, final byte[] key, final ByteStringBuilder value) throws DirectoryException
{
- boolean successful = false;
+ if (!putNoOverwrite(database, key, value))
+ {
+ final LocalizableMessage m = ERR_JEB_COMPSCHEMA_CANNOT_STORE_MULTIPLE_FAILURES.get();
+ throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), m);
+ }
+ }
+
+ private boolean putNoOverwrite(final Database database, final byte[] key, final ByteStringBuilder value)
+ throws DirectoryException
+ {
final DatabaseEntry keyEntry = new DatabaseEntry(key);
- final DatabaseEntry valueEntry = new DatabaseEntry(value.getBackingArray(),
- 0, value.length());
+ final DatabaseEntry valueEntry = new DatabaseEntry(value.getBackingArray(), 0, value.length());
for (int i = 0; i < 3; i++)
{
try
{
- final OperationStatus status = database.putNoOverwrite(null, keyEntry,
- valueEntry);
- if (status == OperationStatus.SUCCESS)
- {
- successful = true;
- break;
- }
- else
+ final OperationStatus status = database.putNoOverwrite(null, keyEntry, valueEntry);
+ if (status != SUCCESS)
{
final LocalizableMessage m = ERR_JEB_COMPSCHEMA_CANNOT_STORE_STATUS.get(status);
throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), m);
}
+ return true;
}
catch (final LockConflictException ce)
{
@@ -349,19 +324,11 @@
}
catch (final DatabaseException de)
{
- final LocalizableMessage m = ERR_JEB_COMPSCHEMA_CANNOT_STORE_EX.get(de
- .getMessage());
- throw new DirectoryException(
- DirectoryServer.getServerErrorResultCode(), m, de);
+ final LocalizableMessage m = ERR_JEB_COMPSCHEMA_CANNOT_STORE_EX.get(de.getMessage());
+ throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), m, de);
}
}
-
- if (!successful)
- {
- final LocalizableMessage m = ERR_JEB_COMPSCHEMA_CANNOT_STORE_MULTIPLE_FAILURES.get();
- throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
- m);
- }
+ return false;
}
}
--
Gitblit v1.10.0