From 435382540a250aa80f637a1c7094482b651b8612 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 13 Jan 2015 10:44:32 +0000
Subject: [PATCH] Code cleanup
---
opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java | 248 +++++++++++++++----------------------------------
1 files changed, 75 insertions(+), 173 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java b/opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java
index 5343554..ebeb08c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/FIFOEntryCache.java
@@ -22,10 +22,12 @@
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
- * Portions Copyright 2011-2014 ForgeRock AS
+ * Portions Copyright 2011-2015 ForgeRock AS
*/
package org.opends.server.extensions;
+import static org.opends.messages.ExtensionMessages.*;
+
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
@@ -33,14 +35,15 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.util.Utils;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.EntryCacheCfg;
import org.opends.server.admin.std.server.FIFOEntryCacheCfg;
import org.opends.server.api.Backend;
import org.opends.server.api.EntryCache;
-import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.types.Attribute;
import org.opends.server.types.CacheEntry;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
@@ -48,11 +51,8 @@
import org.opends.server.types.InitializationException;
import org.opends.server.types.LockManager;
import org.opends.server.types.SearchFilter;
-import org.opends.server.types.Attribute;
import org.opends.server.util.ServerConstants;
-import static org.opends.messages.ExtensionMessages.*;
-
/**
* This class defines a Directory Server entry cache that uses a FIFO to keep
* track of the entries. Entries that have been in the cache the longest are
@@ -90,61 +90,52 @@
*/
private static final Runtime runtime = Runtime.getRuntime();
- // The mapping between entry backends/IDs and entries.
- private HashMap<Backend,HashMap<Long,CacheEntry>> idMap;
+ /** The mapping between entry backends/IDs and entries. */
+ private HashMap<Backend<?>, HashMap<Long, CacheEntry>> idMap;
- // The mapping between DNs and entries.
+ /** The mapping between DNs and entries. */
private LinkedHashMap<DN,CacheEntry> dnMap;
- // The lock used to provide threadsafe access when changing the contents of
- // the cache.
+ /**
+ * The lock used to provide threadsafe access when changing the contents of
+ * the cache.
+ */
private ReentrantReadWriteLock cacheLock;
private Lock cacheWriteLock;
private Lock cacheReadLock;
- // The maximum amount of memory in bytes that the JVM will be allowed to use
- // before we need to start purging entries.
+ /**
+ * The maximum amount of memory in bytes that the JVM will be allowed to use
+ * before we need to start purging entries.
+ */
private long maxAllowedMemory;
- // The maximum number of entries that may be held in the cache.
+ /** The maximum number of entries that may be held in the cache. */
private long maxEntries;
- // Currently registered configuration object.
+ /** Currently registered configuration object. */
private FIFOEntryCacheCfg registeredConfiguration;
- // The maximum length of time to try to obtain a lock before giving
- // up.
+ /** The maximum length of time to try to obtain a lock before giving up. */
private long lockTimeout = LockManager.DEFAULT_TIMEOUT;
-
-
- /**
- * Creates a new instance of this FIFO entry cache.
- */
+ /** Creates a new instance of this FIFO entry cache. */
public FIFOEntryCache()
{
super();
-
-
// All initialization should be performed in the initializeEntryCache.
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
- public void initializeEntryCache(
- FIFOEntryCacheCfg configuration
- )
+ public void initializeEntryCache(FIFOEntryCacheCfg configuration)
throws ConfigException, InitializationException
{
registeredConfiguration = configuration;
configuration.addFIFOChangeListener (this);
// Initialize the cache structures.
- idMap = new HashMap<Backend,HashMap<Long,CacheEntry>>();
+ idMap = new HashMap<Backend<?>, HashMap<Long, CacheEntry>>();
dnMap = new LinkedHashMap<DN,CacheEntry>();
// Initialize locks.
@@ -165,11 +156,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void finalizeEntryCache()
{
@@ -191,11 +178,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean containsEntry(DN entryDN)
{
@@ -212,11 +195,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public Entry getEntry(DN entryDN)
{
@@ -238,11 +217,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public long getEntryID(DN entryDN)
{
@@ -250,21 +225,13 @@
cacheReadLock.lock();
try {
CacheEntry e = dnMap.get(entryDN);
- if (e == null) {
- return -1;
- } else {
- return e.getEntryID();
- }
+ return e != null ? e.getEntryID() : -1;
} finally {
cacheReadLock.unlock();
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public DN getEntryDN(Backend backend, long entryID)
{
@@ -284,11 +251,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void putEntry(Entry entry, Backend backend, long entryID)
{
@@ -379,10 +342,10 @@
// cache. If so, then see if we have exceeded it and we need to purge
// entries until we're within the limit.
int entryCount = dnMap.size();
- if ((maxEntries > 0) && (entryCount > maxEntries))
+ if (maxEntries > 0 && entryCount > maxEntries)
{
Iterator<CacheEntry> iterator = dnMap.values().iterator();
- while (iterator.hasNext() && (entryCount > maxEntries))
+ while (iterator.hasNext() && entryCount > maxEntries)
{
CacheEntry ce = iterator.next();
iterator.remove();
@@ -408,11 +371,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean putEntryIfAbsent(Entry entry, Backend backend, long entryID)
{
@@ -492,10 +451,10 @@
// cache. If so, then see if we have exceeded it and we need to purge
// entries until we're within the limit.
int entryCount = dnMap.size();
- if ((maxEntries > 0) && (entryCount > maxEntries))
+ if (maxEntries > 0 && entryCount > maxEntries)
{
Iterator<CacheEntry> iterator = dnMap.values().iterator();
- while (iterator.hasNext() && (entryCount > maxEntries))
+ while (iterator.hasNext() && entryCount > maxEntries)
{
CacheEntry ce = iterator.next();
iterator.remove();
@@ -529,11 +488,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void removeEntry(DN entryDN)
{
@@ -588,11 +543,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void clear()
{
@@ -623,11 +574,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void clearBackend(Backend backend)
{
@@ -682,11 +629,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void clearSubtree(DN baseDN)
{
@@ -793,11 +736,7 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void handleLowMemory()
{
@@ -821,7 +760,7 @@
{
int numToDrop = numEntries / 10;
Iterator<CacheEntry> iterator = dnMap.values().iterator();
- while (iterator.hasNext() && (numToDrop > 0))
+ while (iterator.hasNext() && numToDrop > 0)
{
CacheEntry entry = iterator.next();
iterator.remove();
@@ -848,12 +787,8 @@
}
}
-
-
- /**
- * {@inheritDoc}
- */
- @Override()
+ /** {@inheritDoc} */
+ @Override
public boolean isConfigurationAcceptable(EntryCacheCfg configuration,
List<LocalizableMessage> unacceptableReasons)
{
@@ -861,11 +796,7 @@
return isConfigurationChangeAcceptable(config, unacceptableReasons);
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean isConfigurationChangeAcceptable(
FIFOEntryCacheCfg configuration,
@@ -884,15 +815,9 @@
return errorHandler.getIsAcceptable();
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
- public ConfigChangeResult applyConfigurationChange(
- FIFOEntryCacheCfg configuration
- )
+ public ConfigChangeResult applyConfigurationChange( FIFOEntryCacheCfg configuration )
{
boolean applyChanges = true;
ArrayList<LocalizableMessage> errorMessages = new ArrayList<LocalizableMessage>();
@@ -906,13 +831,10 @@
processEntryCacheConfig (configuration, applyChanges, errorHandler);
}
- boolean adminActionRequired = errorHandler.getIsAdminActionRequired();
- ConfigChangeResult changeResult = new ConfigChangeResult(
- errorHandler.getResultCode(),
- adminActionRequired,
- errorHandler.getErrorMessages()
- );
-
+ final ConfigChangeResult changeResult = new ConfigChangeResult();
+ changeResult.setResultCode(errorHandler.getResultCode());
+ changeResult.setAdminActionRequired(errorHandler.getIsAdminActionRequired());
+ changeResult.getMessages().addAll(errorHandler.getErrorMessages());
return changeResult;
}
@@ -935,23 +857,18 @@
)
{
// Local variables to read configuration.
- DN newConfigEntryDN;
- long newLockTimeout;
- long newMaxEntries;
- int newMaxMemoryPercent;
- long newMaxAllowedMemory;
HashSet<SearchFilter> newIncludeFilters = null;
HashSet<SearchFilter> newExcludeFilters = null;
// Read configuration.
- newConfigEntryDN = configuration.dn();
- newLockTimeout = configuration.getLockTimeout();
- newMaxEntries = configuration.getMaxEntries();
+ DN newConfigEntryDN = configuration.dn();
+ long newLockTimeout = configuration.getLockTimeout();
+ long newMaxEntries = configuration.getMaxEntries();
// Maximum memory the cache can use.
- newMaxMemoryPercent = configuration.getMaxMemoryPercent();
- long maxJvmHeapSize = Runtime.getRuntime().maxMemory();
- newMaxAllowedMemory = (maxJvmHeapSize / 100) * newMaxMemoryPercent;
+ int newMaxMemoryPercent = configuration.getMaxMemoryPercent();
+ long maxJvmHeapSize = Runtime.getRuntime().maxMemory();
+ long newMaxAllowedMemory = (maxJvmHeapSize / 100) * newMaxMemoryPercent;
// Get include and exclude filters.
switch (errorHandler.getConfigPhase())
@@ -987,11 +904,7 @@
return errorHandler.getIsAcceptable();
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public ArrayList<Attribute> getMonitorData()
{
@@ -999,16 +912,15 @@
try {
attrs = EntryCacheCommon.getGenericMonitorData(
- new Long(cacheHits.longValue()),
+ Long.valueOf(cacheHits.longValue()),
// If cache misses is maintained by default cache
// get it from there and if not point to itself.
DirectoryServer.getEntryCache().getCacheMisses(),
null,
- new Long(maxAllowedMemory),
- new Long(dnMap.size()),
- (((maxEntries != Integer.MAX_VALUE) &&
- (maxEntries != Long.MAX_VALUE)) ?
- new Long(maxEntries) : new Long(0))
+ Long.valueOf(maxAllowedMemory),
+ Long.valueOf(dnMap.size()),
+ Long.valueOf(
+ (maxEntries != Integer.MAX_VALUE && maxEntries != Long.MAX_VALUE) ? maxEntries : 0)
);
} catch (Exception e) {
logger.traceException(e);
@@ -1017,29 +929,21 @@
return attrs;
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public Long getCacheCount()
{
- return new Long(dnMap.size());
+ return Long.valueOf(dnMap.size());
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public String toVerboseString()
{
StringBuilder sb = new StringBuilder();
Map<DN,CacheEntry> dnMapCopy;
- Map<Backend,HashMap<Long,CacheEntry>> idMapCopy;
+ Map<Backend<?>, HashMap<Long, CacheEntry>> idMapCopy;
// Grab cache lock to prevent any modifications
// to the cache maps until a snapshot is taken.
@@ -1049,26 +953,27 @@
// modifications in case of any access order maps, make copies
// instead.
dnMapCopy = new LinkedHashMap<DN,CacheEntry>(dnMap);
- idMapCopy = new HashMap<Backend,HashMap<Long,CacheEntry>>(idMap);
+ idMapCopy = new HashMap<Backend<?>, HashMap<Long, CacheEntry>>(idMap);
} finally {
cacheWriteLock.unlock();
}
// Check dnMap first.
for (DN dn : dnMapCopy.keySet()) {
- sb.append(dn.toString());
+ final CacheEntry cacheEntry = dnMapCopy.get(dn);
+ sb.append(dn);
sb.append(":");
- sb.append((dnMapCopy.get(dn) != null ?
- Long.toString(dnMapCopy.get(dn).getEntryID()) : null));
+ sb.append(cacheEntry != null ?
+ Long.toString(cacheEntry.getEntryID()) : null);
sb.append(":");
- sb.append((dnMapCopy.get(dn) != null ?
- dnMapCopy.get(dn).getBackend().getBackendID() : null));
+ sb.append(cacheEntry != null ?
+ cacheEntry.getBackend().getBackendID() : null);
sb.append(ServerConstants.EOL);
}
// See if there is anything on idMap that is not reflected on
// dnMap in case maps went out of sync.
- for (Backend backend : idMapCopy.keySet()) {
+ for (Backend<?> backend : idMapCopy.keySet()) {
for (Long id : idMapCopy.get(backend).keySet()) {
final CacheEntry cacheEntry = idMapCopy.get(backend).get(id);
if (cacheEntry == null || !dnMapCopy.containsKey(cacheEntry.getDN())) {
@@ -1083,9 +988,6 @@
}
String verboseString = sb.toString();
-
- return (verboseString.length() > 0 ? verboseString : null);
+ return verboseString.length() > 0 ? verboseString : null;
}
-
}
-
--
Gitblit v1.10.0