From 6e562514f52ba0c0f79bdca84cd2acd506b9cd21 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Tue, 08 Nov 2016 17:35:52 +0000
Subject: [PATCH] OPENDJ-3417 Fix functional tests failures
---
opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java | 7 ++-----
opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java | 10 ++++++++++
opendj-server-legacy/src/main/java/org/opends/server/tasks/RestartTaskThread.java | 4 +---
opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java | 10 +++-------
opendj-server-legacy/src/main/java/org/opends/server/tasks/ShutdownTask.java | 1 +
opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java | 1 +
6 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
index 87a8643..2a70ff1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
@@ -546,11 +546,8 @@
case SINGLE_LEVEL:
case WHOLE_SUBTREE:
case SUBORDINATES:
- throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
- ERR_ROOTDSE_NOT_SUPPORTED_SCOPE.get(
- searchOperation.getConnectionID(),
- searchOperation.getOperationID(),
- searchOperation.getScope()));
+ // nothing to return
+ break;
default:
LocalizableMessage message = ERR_ROOTDSE_INVALID_SEARCH_SCOPE.
get(searchOperation.getConnectionID(),
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
index f3d5a89..ff8167b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
@@ -460,6 +460,16 @@
public Set<BackendAndName> getSubordinateBackends(DN baseDN)
{
final Set<BackendAndName> subs = new HashSet<>();
+ if (baseDN.isRootDN())
+ {
+ Map<DN, LocalBackend<?>> namingContexts = getAllPublicNamingContexts();
+ for (Map.Entry<DN, LocalBackend<?>> b : namingContexts.entrySet())
+ {
+ subs.add(new BackendAndName(b.getValue(), b.getKey()));
+ }
+ return subs;
+ }
+
LocalBackend<?> backend = getLocalBackendWithBaseDN(baseDN);
if (backend == null)
{
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tasks/RestartTaskThread.java b/opendj-server-legacy/src/main/java/org/opends/server/tasks/RestartTaskThread.java
index 8a3f0e3..4e501d3 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tasks/RestartTaskThread.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tasks/RestartTaskThread.java
@@ -19,7 +19,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.opends.server.core.DirectoryServer;
-import org.opends.server.api.DirectoryThread;
/**
* This class defines a thread that will be spawned to invoke a Directory Server
@@ -35,8 +34,7 @@
* daemon thread. These changes are needed to guarantee that the JVM does not
* exit before we get a chance to restart it if all non-daemon threads go away.
*/
-public class RestartTaskThread
- extends DirectoryThread
+public class RestartTaskThread extends Thread
{
/**
* The fully-qualified name of this class.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tasks/ShutdownTask.java b/opendj-server-legacy/src/main/java/org/opends/server/tasks/ShutdownTask.java
index c091bca..56cda31 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tasks/ShutdownTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tasks/ShutdownTask.java
@@ -169,6 +169,7 @@
// Since the process will not be killed, we can proceed exactly the same
// way with or without windows service configured.
RestartTaskThread restartThread = new RestartTaskThread(shutdownMessage);
+ restartThread.setDaemon(false);
restartThread.start();
}
else
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java
index 38f09b8..7510190 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java
@@ -280,6 +280,7 @@
try
{
new DirectoryServer.InitializationBuilder(configFile.getValue())
+ .requireCryptoServices()
.requireErrorAndDebugLogPublisher(out, err)
.initialize();
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
index f59a2b5..8cd729d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
@@ -743,15 +743,11 @@
executeOperation(operation, backendAndName.getBackend());
- if (!entryDN.isRootDN())
+ // For subtree search operation we need to go through the subordinate nodes.
+ if (operation.getOperationType() == OperationType.SEARCH)
{
- // For subtree search operation we need to go through the subordinate nodes.
- if (operation.getOperationType() == OperationType.SEARCH)
- {
- executeSearchOnSubordinates((SearchOperation) operation, backendAndName.getBaseDn());
- }
+ executeSearchOnSubordinates((SearchOperation) operation, backendAndName.getBaseDn());
}
-
return true;
}
--
Gitblit v1.10.0