From b03837dac977fbc5d12e5dc5efc785b1d5d1542f Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Fri, 06 Mar 2015 15:36:42 +0000
Subject: [PATCH] Fix OPENDJ-1844: NPE in AuthenticatedUsers when pre-parse plugin stop processing with Success.
---
opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java | 24 ++++++++++++------------
1 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java b/opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java
index 29d3941..c4bfed8 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java
@@ -230,11 +230,12 @@
@Override
public PostResponse doPostResponse(PostResponseModifyOperation op)
{
- if (op.getResultCode() != ResultCode.SUCCESS) {
+ final Entry oldEntry = op.getCurrentEntry();
+
+ if (op.getResultCode() != ResultCode.SUCCESS || oldEntry == null) {
return PostResponse.continueOperationProcessing();
}
- final Entry oldEntry = op.getCurrentEntry();
final Entry newEntry = op.getModifiedEntry();
// Identify any client connections that may be authenticated
// or authorized as the user whose entry has been modified
@@ -262,14 +263,15 @@
@Override
public PostResponse doPostResponse(PostResponseModifyDNOperation op)
{
- if (op.getResultCode() != ResultCode.SUCCESS) {
+ final Entry oldEntry = op.getOriginalEntry();
+ final Entry newEntry = op.getUpdatedEntry();
+
+ if (op.getResultCode() != ResultCode.SUCCESS || oldEntry == null || newEntry == null) {
return PostResponse.continueOperationProcessing();
}
- Entry oldEntry = op.getOriginalEntry();
- Entry newEntry = op.getUpdatedEntry();
- DN oldDN = oldEntry.getName();
- DN newDN = newEntry.getName();
+ final DN oldDN = oldEntry.getName();
+ final DN newDN = newEntry.getName();
// Identify any client connections that may be authenticated
// or authorized as the user whose entry has been modified
@@ -277,7 +279,7 @@
lock.writeLock().lock();
try
{
- Set<CopyOnWriteArraySet<ClientConnection>> arraySet =
+ final Set<CopyOnWriteArraySet<ClientConnection>> arraySet =
new HashSet<CopyOnWriteArraySet<ClientConnection>>();
userMap.removeSubtree(oldEntry.getName(), arraySet);
for (CopyOnWriteArraySet<ClientConnection> connectionSet : arraySet)
@@ -316,8 +318,7 @@
logger.traceException(e);
}
}
- if (newAuthNDN != null && authNDN != null &&
- authNDN.isDescendantOf(oldEntry.getName()))
+ if (newAuthNDN != null && authNDN != null && authNDN.isDescendantOf(oldEntry.getName()))
{
if (newAuthNSet == null)
{
@@ -326,8 +327,7 @@
conn.getAuthenticationInfo().setAuthenticationDN(newAuthNDN);
newAuthNSet.add(conn);
}
- if (newAuthZDN != null && authZDN != null &&
- authZDN.isDescendantOf(oldEntry.getName()))
+ if (newAuthZDN != null && authZDN != null && authZDN.isDescendantOf(oldEntry.getName()))
{
if (newAuthZSet == null)
{
--
Gitblit v1.10.0