From 6781e3b79f4ff822aeb68d4d3a3dcd8b49ad86f9 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 12 Sep 2007 00:03:02 +0000
Subject: [PATCH] Make a couple of changes to help improve server performance:
---
opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java | 34 ++++++++--------------------------
1 files changed, 8 insertions(+), 26 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
index d910fb9..4bf784e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
@@ -25,7 +25,6 @@
* Portions Copyright 2006-2007 Sun Microsystems, Inc.
*/
package org.opends.server.extensions;
-import org.opends.messages.Message;
@@ -34,17 +33,19 @@
import java.util.List;
import java.util.SortedSet;
import java.util.StringTokenizer;
-import java.util.concurrent.locks.ReentrantLock;
+import org.opends.messages.Message;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.PasswordGeneratorCfg;
import org.opends.server.admin.std.server.RandomPasswordGeneratorCfg;
import org.opends.server.api.PasswordGenerator;
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.types.ByteString;
import org.opends.server.types.ByteStringFactory;
import org.opends.server.types.ConfigChangeResult;
+import org.opends.server.types.DebugLogLevel;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.DN;
import org.opends.server.types.Entry;
@@ -52,11 +53,8 @@
import org.opends.server.types.NamedCharacterSet;
import org.opends.server.types.ResultCode;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.DebugLogLevel;
import static org.opends.messages.ExtensionMessages.*;
-
+import static org.opends.server.loggers.debug.DebugLogger.*;
import static org.opends.server.util.StaticUtils.*;
@@ -97,7 +95,7 @@
// The lock to use to ensure that the character sets and counts are not
// altered while a password is being generated.
- private ReentrantLock generatorLock;
+ private Object generatorLock;
// The character set format string for this password generator.
private String formatString;
@@ -113,8 +111,7 @@
throws ConfigException, InitializationException
{
this.configEntryDN = configuration.dn();
- generatorLock = new ReentrantLock();
- int msgID ;
+ generatorLock = new Object();
// Get the character sets for use in generating the password. At least one
// must have been provided.
@@ -275,19 +272,13 @@
{
StringBuilder buffer = new StringBuilder(totalLength);
- generatorLock.lock();
-
- try
+ synchronized (generatorLock)
{
for (int i=0; i < characterSets.length; i++)
{
characterSets[i].getRandomCharacters(buffer, characterCounts[i]);
}
}
- finally
- {
- generatorLock.unlock();
- }
return ByteStringFactory.create(buffer.toString());
}
@@ -315,8 +306,6 @@
RandomPasswordGeneratorCfg configuration,
List<Message> unacceptableReasons)
{
- int msgID;
-
DN cfgEntryDN = configuration.dn();
// Get the character sets for use in generating the password. At
@@ -438,7 +427,6 @@
ResultCode resultCode = ResultCode.SUCCESS;
boolean adminActionRequired = false;
ArrayList<Message> messages = new ArrayList<Message>();
- int msgID;
// Get the character sets for use in generating the password. At least one
@@ -585,9 +573,7 @@
// If everything looks OK, then apply the changes.
if (resultCode == ResultCode.SUCCESS)
{
- generatorLock.lock();
-
- try
+ synchronized (generatorLock)
{
encodedCharacterSets = newEncodedCharacterSets;
formatString = newFormatString;
@@ -603,10 +589,6 @@
totalLength += characterCounts[i];
}
}
- finally
- {
- generatorLock.unlock();
- }
}
--
Gitblit v1.10.0