From 8b0c24340af7dbcc3c65618fdc0586e79b69273e Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 03 Feb 2016 12:02:58 +0000
Subject: [PATCH] LocalBackend*Operation.java: moved null checks on the backend before using it + removed duplicate null checks
---
opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java | 30 +++++++++++++-----------------
opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java | 17 ++++++++---------
opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java | 4 ++--
opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java | 4 ++--
4 files changed, 25 insertions(+), 30 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
index 2983e45..3bccf1f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
@@ -36,6 +36,7 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.schema.AttributeType;
import org.forgerock.opendj.ldap.schema.Syntax;
import org.opends.server.api.AccessControlHandler;
import org.opends.server.api.AuthenticationPolicy;
@@ -58,7 +59,6 @@
import org.opends.server.schema.UserPasswordSyntax;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeBuilder;
-import org.forgerock.opendj.ldap.schema.AttributeType;
import org.opends.server.types.Attributes;
import org.opends.server.types.CanceledOperationException;
import org.opends.server.types.Control;
@@ -1048,7 +1048,7 @@
// We don't need to do anything here because it's already handled
// in LocalBackendAddOperation.handlePasswordPolicy().
}
- else if (c.isCritical() && (backend == null || !backend.supportsControl(oid)))
+ else if (c.isCritical() && !backend.supportsControl(oid))
{
throw newDirectoryException(entryDN, ResultCode.UNAVAILABLE_CRITICAL_EXTENSION,
ERR_ADD_UNSUPPORTED_CRITICAL_CONTROL.get(entryDN, oid));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
index 3dcffd2..a9d5cf6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
@@ -22,7 +22,7 @@
*
*
* Copyright 2008-2009 Sun Microsystems, Inc.
- * Portions Copyright 2011-2015 ForgeRock AS
+ * Portions Copyright 2011-2016 ForgeRock AS
*/
package org.opends.server.workflowelement.localbackend;
@@ -194,6 +194,14 @@
return;
}
+ // Get the backend to use for the delete. If there is none, then fail.
+ if (backend == null)
+ {
+ setResultCode(ResultCode.NO_SUCH_OBJECT);
+ appendErrorMessage(ERR_DELETE_NO_SUCH_ENTRY.get(entryDN));
+ return;
+ }
+
/*
* Grab a write lock on the entry and its subtree in order to prevent concurrent updates to
* subordinate entries.
@@ -267,22 +275,13 @@
}
}
- // Get the backend to use for the delete. If there is none, then fail.
- if (backend == null)
- {
- setResultCode(ResultCode.NO_SUCH_OBJECT);
- appendErrorMessage(ERR_DELETE_NO_SUCH_ENTRY.get(entryDN));
- return;
- }
-
LocalBackendWorkflowElement.checkIfBackendIsWritable(backend, this,
entryDN, ERR_DELETE_SERVER_READONLY, ERR_DELETE_BACKEND_READONLY);
// The selected backend will have the responsibility of making sure that
// the entry actually exists and does not have any children (or possibly
// handling a subtree delete). But we will need to check if there are
- // any subordinate backends that should stop us from attempting the
- // delete.
+ // any subordinate backends that should stop us from attempting the delete
for (Backend<?> b : backend.getSubordinateBackends())
{
for (DN dn : b.getBaseDNs())
@@ -312,8 +311,7 @@
backend.deleteEntry(entryDN, this);
}
- LocalBackendWorkflowElement.addPreReadResponse(this, preReadRequest,
- entry);
+ LocalBackendWorkflowElement.addPreReadResponse(this, preReadRequest, entry);
if (!noOp)
{
@@ -450,7 +448,7 @@
{
continue;
}
- else if (c.isCritical() && (backend == null || !backend.supportsControl(oid)))
+ else if (c.isCritical() && !backend.supportsControl(oid))
{
throw newDirectoryException(entry, ResultCode.UNAVAILABLE_CRITICAL_EXTENSION,
ERR_DELETE_UNSUPPORTED_CRITICAL_CONTROL.get(entryDN, oid));
@@ -486,9 +484,7 @@
return true;
}
- /**
- * Invoke post operation synchronization providers.
- */
+ /** Invoke post operation synchronization providers. */
private void processSynchPostOperationPlugins() {
for (SynchronizationProvider<?> provider : getSynchronizationProviders()) {
try {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
index 33f280f..da12a94 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
@@ -37,6 +37,7 @@
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ModificationType;
import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.schema.AttributeType;
import org.opends.server.api.AccessControlHandler;
import org.opends.server.api.Backend;
import org.opends.server.api.ClientConnection;
@@ -50,7 +51,6 @@
import org.opends.server.core.ModifyDNOperationWrapper;
import org.opends.server.core.PersistentSearch;
import org.opends.server.types.Attribute;
-import org.forgerock.opendj.ldap.schema.AttributeType;
import org.opends.server.types.Attributes;
import org.opends.server.types.CanceledOperationException;
import org.opends.server.types.Control;
@@ -602,7 +602,7 @@
{
continue;
}
- else if (c.isCritical() && (backend == null || !backend.supportsControl(oid)))
+ else if (c.isCritical() && !backend.supportsControl(oid))
{
throw new DirectoryException(ResultCode.UNAVAILABLE_CRITICAL_EXTENSION,
ERR_MODDN_UNSUPPORTED_CRITICAL_CONTROL.get(entryDN, oid));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
index d530816..c9d41c1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -39,6 +39,7 @@
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ModificationType;
import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.schema.AttributeType;
import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.forgerock.opendj.ldap.schema.Syntax;
import org.forgerock.util.Reject;
@@ -69,7 +70,6 @@
import org.opends.server.types.AccountStatusNotificationType;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeBuilder;
-import org.forgerock.opendj.ldap.schema.AttributeType;
import org.opends.server.types.AuthenticationInfo;
import org.opends.server.types.CanceledOperationException;
import org.opends.server.types.Control;
@@ -356,6 +356,12 @@
{
return;
}
+ if (backend == null)
+ {
+ setResultCode(ResultCode.NO_SUCH_OBJECT);
+ appendErrorMessage(ERR_MODIFY_NO_BACKEND_FOR_ENTRY.get(entryDN));
+ return;
+ }
// Process the modifications to convert them from their raw form to the
// form required for the rest of the modify processing.
@@ -476,13 +482,6 @@
// Actually perform the modify operation. This should also include
// taking care of any synchronization that might be needed.
- if (backend == null)
- {
- setResultCode(ResultCode.NO_SUCH_OBJECT);
- appendErrorMessage(ERR_MODIFY_NO_BACKEND_FOR_ENTRY.get(entryDN));
- return;
- }
-
LocalBackendWorkflowElement.checkIfBackendIsWritable(backend, this,
entryDN, ERR_MODIFY_SERVER_READONLY, ERR_MODIFY_BACKEND_READONLY);
@@ -714,7 +713,7 @@
{
pwPolicyControlRequested = true;
}
- else if (c.isCritical() && (backend == null || !backend.supportsControl(oid)))
+ else if (c.isCritical() && !backend.supportsControl(oid))
{
throw newDirectoryException(currentEntry, ResultCode.UNAVAILABLE_CRITICAL_EXTENSION,
ERR_MODIFY_UNSUPPORTED_CRITICAL_CONTROL.get(entryDN, oid));
--
Gitblit v1.10.0