From a873d6d0b57a360b7ff038cf6aac11e8e7369cfa Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 13 May 2015 09:00:40 +0000
Subject: [PATCH] ImportStrategy.java: In importLDIF(), added InitializationException as a checked exception.
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java | 71 +++++++++++++----------------------
1 files changed, 26 insertions(+), 45 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
index 054786a..34b08ca 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
@@ -56,6 +56,7 @@
import org.opends.server.backends.pluggable.spi.WriteableTransaction;
import org.opends.server.core.*;
import org.opends.server.types.*;
+import org.opends.server.util.LDIFException;
import org.opends.server.util.RuntimeInformation;
/**
@@ -350,16 +351,8 @@
public long getNumberOfEntriesInBaseDN(DN baseDN) throws DirectoryException
{
checkNotNull(baseDN, "baseDN must not be null");
- final EntryContainer ec;
- try {
- ec = accessBegin(null, baseDN);
- }
- catch (DirectoryException de)
- {
- throw de;
- }
-
+ final EntryContainer ec = accessBegin(null, baseDN);
ec.sharedLock.lock();
try
{
@@ -367,8 +360,7 @@
}
catch (Exception e)
{
- throw new DirectoryException(
- DirectoryServer.getServerErrorResultCode(), LocalizableMessage.raw(e.getMessage()), e);
+ throw new DirectoryException(getServerErrorResultCode(), LocalizableMessage.raw(e.getMessage()), e);
}
finally
{
@@ -587,7 +579,7 @@
if (rootContainer == null)
{
LocalizableMessage msg = ERR_ROOT_CONTAINER_NOT_INITIALIZED.get(getBackendID());
- throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), msg);
+ throw new DirectoryException(getServerErrorResultCode(), msg);
}
}
@@ -599,7 +591,6 @@
// If the backend already has the root container open, we must use the same
// underlying root container
boolean openRootContainer = mustOpenRootContainer();
- final ResultCode errorRC = DirectoryServer.getServerErrorResultCode();
try
{
if (openRootContainer)
@@ -612,23 +603,15 @@
}
catch (IOException ioe)
{
- throw new DirectoryException(errorRC, ERR_EXPORT_IO_ERROR.get(ioe.getMessage()), ioe);
+ throw new DirectoryException(getServerErrorResultCode(), ERR_EXPORT_IO_ERROR.get(ioe.getMessage()), ioe);
}
catch (StorageRuntimeException de)
{
throw createDirectoryException(de);
}
- catch (ConfigException ce)
+ catch (ConfigException | InitializationException | LDIFException e)
{
- throw new DirectoryException(errorRC, ce.getMessageObject(), ce);
- }
- catch (IdentifiedException e)
- {
- if (e instanceof DirectoryException)
- {
- throw (DirectoryException) e;
- }
- throw new DirectoryException(errorRC, e.getMessageObject(), e);
+ throw new DirectoryException(getServerErrorResultCode(), e.getMessageObject(), e);
}
finally
{
@@ -671,21 +654,17 @@
}
rootContainer = initializeRootContainer();
- return rootContainer.importLDIF(importConfig, serverContext);
+ return getImportStrategy().importLDIF(importConfig, rootContainer, serverContext);
}
catch (StorageRuntimeException e)
{
- throw new DirectoryException(getServerErrorResultCode(), LocalizableMessage.raw(e.getMessage()), e);
+ throw createDirectoryException(e);
}
catch (DirectoryException e)
{
throw e;
}
- catch (OpenDsException e)
- {
- throw new DirectoryException(getServerErrorResultCode(), e.getMessageObject(), e);
- }
- catch (ConfigException e)
+ catch (OpenDsException | ConfigException e)
{
throw new DirectoryException(getServerErrorResultCode(), e.getMessageObject(), e);
}
@@ -712,6 +691,12 @@
}
}
+ private ImportStrategy getImportStrategy() throws DirectoryException
+ {
+ // TODO JNR may call new SuccessiveAddsImportStrategy() depending on configured import strategy
+ return new Importer.StrategyImpl(cfg);
+ }
+
/** {@inheritDoc} */
@Override
public long verifyBackend(VerifyConfig verifyConfig)
@@ -771,10 +756,9 @@
* If the rootContainer is open, the backend is initialized by something else.
* We can't do any rebuild of system indexes while others are using this backend.
*/
- final ResultCode errorRC = DirectoryServer.getServerErrorResultCode();
if (!openRootContainer && rebuildConfig.includesSystemIndex())
{
- throw new DirectoryException(errorRC, ERR_REBUILD_BACKEND_ONLINE.get());
+ throw new DirectoryException(getServerErrorResultCode(), ERR_REBUILD_BACKEND_ONLINE.get());
}
try
@@ -787,23 +771,23 @@
}
catch (ExecutionException execEx)
{
- throw new DirectoryException(errorRC, ERR_EXECUTION_ERROR.get(execEx.getMessage()), execEx);
+ throw new DirectoryException(getServerErrorResultCode(), ERR_EXECUTION_ERROR.get(execEx.getMessage()), execEx);
}
catch (InterruptedException intEx)
{
- throw new DirectoryException(errorRC, ERR_INTERRUPTED_ERROR.get(intEx.getMessage()), intEx);
+ throw new DirectoryException(getServerErrorResultCode(), ERR_INTERRUPTED_ERROR.get(intEx.getMessage()), intEx);
}
catch (ConfigException ce)
{
- throw new DirectoryException(errorRC, ce.getMessageObject(), ce);
+ throw new DirectoryException(getServerErrorResultCode(), ce.getMessageObject(), ce);
}
catch (StorageRuntimeException e)
{
- throw new DirectoryException(errorRC, LocalizableMessage.raw(e.getMessage()), e);
+ throw createDirectoryException(e);
}
catch (InitializationException e)
{
- throw new InitializationException(e.getMessageObject(), e);
+ throw e;
}
finally
{
@@ -896,7 +880,7 @@
}
catch (Exception e)
{
- ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.setResultCode(getServerErrorResultCode());
ccr.addMessage(LocalizableMessage.raw(stackTraceToSingleLineString(e)));
}
return ccr;
@@ -934,7 +918,7 @@
{
logger.traceException(e);
- ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.setResultCode(getServerErrorResultCode());
ccr.addMessage(ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(baseDN, e));
return false;
}
@@ -985,14 +969,11 @@
Throwable cause = e.getCause();
if (cause instanceof OpenDsException)
{
- return new DirectoryException(
- DirectoryServer.getServerErrorResultCode(), (OpenDsException) cause);
+ return new DirectoryException(getServerErrorResultCode(), (OpenDsException) cause);
}
else
{
- return new DirectoryException(
- DirectoryServer.getServerErrorResultCode(),
- LocalizableMessage.raw(e.getMessage()), e);
+ return new DirectoryException(getServerErrorResultCode(), LocalizableMessage.raw(e.getMessage()), e);
}
}
--
Gitblit v1.10.0