mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

abobrov
04.01.2007 d7983b7e6eef579bc5f86cefa6932fecc7aec7bd
entry cache cleanup:
- remove obsolete methods, fields and messages.
- aggregate filters evaluation for config phases.
- simplify filters evaluation and error reporting.
- use a single set of filter messages.
6 files modified
632 ■■■■■ changed files
opends/src/messages/messages/config.properties 59 ●●●●● patch | view | raw | blame | history
opends/src/messages/messages/extension.properties 223 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/extensions/EntryCacheCommon.java 41 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/extensions/FIFOEntryCache.java 133 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java 127 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java 49 ●●●●● patch | view | raw | blame | history
opends/src/messages/messages/config.properties
@@ -695,65 +695,16 @@
 error occurred that prevented the server from installing a temporary default \
 entry cache for use until the actual cache could be created from the \
 configuration:  %s
SEVERE_ERR_CONFIG_ENTRYCACHE_CANNOT_GET_CONFIG_ENTRY_201=An unexpected error \
 occurred while attempting to get the "cn=Entry Cache,cn=config" entry, which \
 holds the entry cache configuration:  %s.  No entry cache will be available
SEVERE_WARN_CONFIG_ENTRYCACHE_NO_CONFIG_ENTRY_202=The entry cache \
SEVERE_WARN_CONFIG_ENTRYCACHE_NO_CONFIG_ENTRY_201=The entry cache \
 configuration entry "cn=Entry Cache,cn=config" does not exist in the \
 Directory Server configuration.  No entry cache will be available until this \
 entry is created with a valid entry cache configuration
SEVERE_ERR_CONFIG_ENTRYCACHE_CANNOT_REGISTER_ADD_LISTENER_203=An error \
 occurred while attempting to register an add listener to watch for the entry \
 cache configuration entry to be created:  %s.  If an entry cache \
 configuration is added while the server is online, it will not be detected \
 until the server is restarted
SEVERE_ERR_CONFIG_ENTRYCACHE_CANNOT_REGISTER_DELETE_LISTENER_204=An error \
 occurred while attempting to register a delete listener to watch for the \
 entry cache configuration entry to be deleted: %s.  If the entry cache \
 configuration entry is deleted while the server is online, it will not be \
 detected until the server is restarted
SEVERE_ERR_CONFIG_ENTRYCACHE_DESCRIPTION_CACHE_ENABLED_205=Indicates whether \
 the Directory Server entry cache should be enabled.  If the entry cache is \
 enabled, it may significantly improve performance by allowing \
 previously-accessed entries to be retrieved from memory rather than needing \
 to access the backend repository.  Changes to this configuration attribute \
 will take effect immediately, but will have the side effect of clearing the \
 cache contents, which may result in degraded performance for a period of time
SEVERE_ERR_CONFIG_ENTRYCACHE_NO_ENABLED_ATTR_206=Configuration entry \
 "cn=Entry Cache,cn=config" does not contain a value for attribute \
 ds-cfg-entry-cache-enabled, which indicates whether the entry cache is \
 enabled for use in the server.  As a result, the cache will be disabled
SEVERE_ERR_CONFIG_ENTRYCACHE_DISABLED_207=The Directory Server entry cache \
 configured in entry "cn=Entry Cache,cn=config" has been disabled.  No entry \
 cache will be available within the server
SEVERE_ERR_CONFIG_ENTRYCACHE_UNABLE_TO_DETERMINE_ENABLED_STATE_208=An \
 unexpected error occurred while attempting to determine whether the entry \
 cache configured in entry "cn=Entry Cache,cn=config" is enabled:  %s.  As a \
 result, the entry cache will be disabled
SEVERE_ERR_CONFIG_ENTRYCACHE_DESCRIPTION_CACHE_CLASS_209=Specifies the \
 fully-qualified name of the Java class that should provide the entry cache \
 implementation.  Changes to this configuration attribute will take effect \
 immediately, but will have the side effect of clearing the cache contents, \
 which may result in degraded performance for a period of time
SEVERE_ERR_CONFIG_ENTRYCACHE_NO_CLASS_ATTR_210=Configuration entry "cn=Entry \
 Cache,cn=config" does not contain a value for attribute \
 ds-cfg-entry-cache-class", which specifies the class name for the entry cache \
 implementation.  As a result, the entry cache will be disabled
SEVERE_ERR_CONFIG_ENTRYCACHE_CANNOT_DETERMINE_CLASS_211=An unexpected error \
 occurred while attempting to determine the value of the \
 ds-cfg-entry-cache-class attribute in configuration entry "cn=Entry \
 Cache,cn=config":  %s.  The entry cache will be disabled
SEVERE_ERR_CONFIG_ENTRYCACHE_CANNOT_LOAD_CLASS_212=The class %s defined in \
 attribute ds-cfg-entry-cache-class of configuration entry "cn=Entry \
 Cache,cn=config" could not be loaded:  %s.  The entry cache will be disabled
SEVERE_ERR_CONFIG_ENTRYCACHE_CANNOT_INSTANTIATE_CLASS_213=The class %s \
 defined in attribute ds-cfg-entry-cache-class of configuration entry \
 "cn=Entry Cache,cn=config" could not be instantiated as a Directory Server \
 entry cache:  %s.  As a result, the entry cache will be disabled
SEVERE_ERR_CONFIG_ENTRYCACHE_CANNOT_INITIALIZE_CACHE_214=An error occurred \
SEVERE_ERR_CONFIG_ENTRYCACHE_CANNOT_INITIALIZE_CACHE_202=An error occurred \
 while attempting to initialize an instance of class %s for use as the \
 Directory Server entry cache:  %s.  As a result, the entry cache will be \
 disabled
SEVERE_ERR_CONFIG_ENTRYCACHE_CONFIG_NOT_ACCEPTABLE_203=The configuration for \
 the entry cache defined in configuration entry %s was not acceptable:  %s
MILD_ERR_CONFIG_ENTRY_CANNOT_REMOVE_CHILD_215=An unexpected error occurred \
 while attempting to remove entry %s as a child of configuration entry %s:  %s
SEVERE_WARN_CONFIG_SCHEMA_CANNOT_PARSE_NAME_FORM_216=Unable to parse a name \
@@ -2097,8 +2048,6 @@
MILD_ERR_CONFIG_CERTMAPPER_CONFIG_NOT_ACCEPTABLE_684=The configuration for \
 the certificate mapper defined in configuration entry %s was not acceptable: \
 %s
MILD_ERR_CONFIG_ENTRYCACHE_CONFIG_NOT_ACCEPTABLE_685=The configuration for \
 the entry cache defined in configuration entry %s was not acceptable:  %s
MILD_ERR_CONFIG_GROUP_CONFIG_NOT_ACCEPTABLE_686=The configuration for the \
 group implementation defined in configuration entry %s was not acceptable: \
 %s
opends/src/messages/messages/extension.properties
@@ -60,113 +60,18 @@
MILD_ERR_PWSCHEME_CANNOT_ENCODE_PASSWORD_5=An unexpected error occurred while \
 attempting to encode a password using the storage scheme defined in class %s: \
 %s
INFO_FIFOCACHE_DESCRIPTION_MAX_MEMORY_PCT_6=Specifies the maximum percentage \
 of available memory in the JVM that the entry cache should be allowed to \
 consume.  Its value should be an integer between 1 and 100.  Changes to this \
 configuration attribute will take effect immediately, although if the value \
 is reduced to a percentage that is less than the current consumption in the \
 JVM, it may take some time for existing cache items to be purged
SEVERE_ERR_FIFOCACHE_CANNOT_DETERMINE_MAX_MEMORY_PCT_7=An error occurred \
 while attempting to determine the value of the ds-cfg-max-memory-percent \
 attribute in configuration entry %s:  %s.  The default of %d will be used
INFO_FIFOCACHE_DESCRIPTION_MAX_ENTRIES_8=Specifies the maximum number of \
 entries that may be held in the entry cache, with a value of zero indicating \
 that there should be no limit to the number of entries (although the memory \
 percentage will still be observed).  Changes to this configuration attribute \
 will take effect immediately, although if it is reduced to a value that is \
 less than the number of entries currently held in the cache, it may take some \
 time for existing cache items to be purged
SEVERE_ERR_FIFOCACHE_CANNOT_DETERMINE_MAX_ENTRIES_9=An error occurred while \
 attempting to determine the value of the ds-cfg-max-entries attribute in \
 configuration entry %s:  %s.  No hard limit on the number of entries will be \
 enforced, but the value of ds-cfg-max-memory-percent will still be observed
INFO_FIFOCACHE_DESCRIPTION_LOCK_TIMEOUT_10=Specifies the maximum length of \
 time in milliseconds that the entry cache should block while attempting to \
 acquire a lock for an entry.  Changes to this configuration attribute will \
 take effect immediately
SEVERE_ERR_FIFOCACHE_CANNOT_DETERMINE_LOCK_TIMEOUT_11=An error occurred while \
 attempting to determine the value of the ds-cfg-lock-timeout attribute in \
 configuration entry %s:  %s.  The default of %d will be used
INFO_FIFOCACHE_DESCRIPTION_INCLUDE_FILTERS_12=Specifies a set of search \
 filters that may be used to indicate which entries should be included in the \
 entry cache.  Entries that do not match at least one of these filters will \
 not be stored in the cache.  If no filters are provided, then any entry will \
 be accepted.  Changes to this configuration attribute will take effect \
 immediately, but will not impact existing entries that are already held in \
 the cache
SEVERE_WARN_FIFOCACHE_CANNOT_DECODE_INCLUDE_FILTER_13=An error occurred while \
 attempting to decode the value "%s" from attribute ds-cfg-include-filter of \
 entry %s:  %s.  This filter will not be used when determining whether to \
 store an entry in the cache
SEVERE_WARN_FIFOCACHE_CANNOT_DECODE_ANY_INCLUDE_FILTERS_14=An error occurred \
 while attempting to decode any of the values from attribute \
 ds-cfg-include-filter of entry %s.  All entries will be considered eligible \
 for inclusion in the cache
SEVERE_ERR_FIFOCACHE_CANNOT_DETERMINE_INCLUDE_FILTERS_15=An error occurred \
 while attempting to determine the value of the ds-cfg-include-filter \
 attribute in configuration entry %s:  %s.  All entries will be considered \
 eligible for inclusion in the cache
INFO_FIFOCACHE_DESCRIPTION_EXCLUDE_FILTERS_16=Specifies a set of search \
 filters that may be used to indicate which entries should be excluded from \
 the entry cache.  Entries that match any of these filters will not be stored \
 in the cache.  If no filters are provided, then any entry will be accepted. \
 Changes to this configuration attribute will take effect immediately, but \
 will not impact existing entries that are already held in the cache
SEVERE_WARN_FIFOCACHE_CANNOT_DECODE_EXCLUDE_FILTER_17=An error occurred while \
 attempting to decode the value "%s" from attribute ds-cfg-exclude-filter of \
 entry %s:  %s.  This filter will not be used when determining whether to \
 store an entry in the cache
SEVERE_WARN_FIFOCACHE_CANNOT_DECODE_ANY_EXCLUDE_FILTERS_18=An error occurred \
 while attempting to decode any of the values from attribute \
 ds-cfg-exclude-filter of entry %s.  All entries will be considered eligible \
 for inclusion in the cache
SEVERE_ERR_FIFOCACHE_CANNOT_DETERMINE_EXCLUDE_FILTERS_19=An error occurred \
 while attempting to determine the value of the ds-cfg-exclude-filter \
 attribute in configuration entry %s:  %s.  All entries will be considered \
 eligible for inclusion in the cache
FATAL_ERR_FIFOCACHE_CANNOT_INITIALIZE_20=A fatal error occurred while trying \
SEVERE_ERR_CACHE_INVALID_INCLUDE_FILTER_6=The ds-cfg-include-filter \
 attribute of configuration entry %s, which specifies a set of search filters \
 that may be used to control which entries are included in the cache, has an \
 invalid value of "%s":  %s
SEVERE_ERR_CACHE_INVALID_EXCLUDE_FILTER_7=The ds-cfg-exclude-filter \
 attribute of configuration entry %s, which specifies a set of search filters \
 that may be used to control which entries are excluded from the cache, has an \
 invalid value of "%s":  %s
FATAL_ERR_FIFOCACHE_CANNOT_INITIALIZE_8=A fatal error occurred while trying \
 to initialize fifo entry cache:  %s
SEVERE_ERR_FIFOCACHE_INVALID_MAX_ENTRIES_21=The ds-cfg-max-entries attribute \
 of entry %s, which specifies the maximum number of entries that may be held \
 in the entry cache, has an invalid value:  %s.  Its value must be a positive \
 integer, or zero to indicate that no limit should be enforced
SEVERE_ERR_FIFOCACHE_INVALID_LOCK_TIMEOUT_22=The ds-cfg-lock-timeout \
 attribute of entry %s, which specifies the maximum length of time in \
 milliseconds that the cache should block while attempting to obtain a lock on \
 an entry, has an invalid value:  %s.  Its value must be a positive integer, \
 or zero to indicate that it should never block
SEVERE_ERR_FIFOCACHE_INVALID_INCLUDE_FILTER_23=The ds-cfg-include-filter \
 attribute of entry %s, which specifies a set of search filters that may be \
 used to control which entries are included in the cache, has an invalid value \
 of "%s":  %s
SEVERE_ERR_FIFOCACHE_INVALID_INCLUDE_FILTERS_24=The ds-cfg-include-filter \
 attribute of entry %s, which specifies a set of search filters that may be \
 used to control which entries are included in the cache, has an invalid \
 value:  %s
SEVERE_ERR_FIFOCACHE_INVALID_EXCLUDE_FILTER_25=The ds-cfg-exclude-filter \
 attribute of entry %s, which specifies a set of search filters that may be \
 used to control which entries are excluded from the cache, has an invalid \
 value of "%s":  %s
SEVERE_ERR_FIFOCACHE_INVALID_EXCLUDE_FILTERS_26=The ds-cfg-exclude-filter \
 attribute of entry %s, which specifies a set of search filters that may be \
 used to control which entries are excluded from the cache, has an invalid \
 value:  %s
INFO_FIFOCACHE_UPDATED_MAX_MEMORY_PCT_27=The amount of memory that may be \
 used for the entry cache has been updated to %d percent of the total memory \
 available to the JVM, or approximately %d bytes.  If this percentage has been \
 reduced, it may take some time for entries to be purged so that the current \
 cache memory consumption can reflect this new setting
INFO_FIFOCACHE_UPDATED_MAX_ENTRIES_28=The number of entries that may be held \
 in the entry cache has been updated to %d.  If this value has been reduced, \
 it may take some time for entries to be purged so that the cache can reflect \
 this new setting
INFO_FIFOCACHE_UPDATED_LOCK_TIMEOUT_29=The lock timeout that will be used to \
 determine the length of time that the cache should block while attempting to \
 acquire a lock for an entry has been set to %d milliseconds
INFO_FIFOCACHE_UPDATED_INCLUDE_FILTERS_30=The set of search filters that will \
 control which entries may be included in the cache has been updated
INFO_FIFOCACHE_UPDATED_EXCLUDE_FILTERS_31=The set of search filters that will \
 control which entries should be be excluded from the cache has been updated
FATAL_ERR_SOFTREFCACHE_CANNOT_INITIALIZE_9=A fatal error occurred while \
 trying to initialize soft reference entry cache:  %s
MILD_ERR_EXTOP_PASSMOD_ILLEGAL_REQUEST_ELEMENT_TYPE_32=The password modify \
 extended request sequence included an ASN.1 element of an invalid type:  %s
MILD_ERR_EXTOP_PASSMOD_CANNOT_DECODE_REQUEST_33=An unexpected error occurred \
@@ -967,78 +872,6 @@
 GSSAPI authentication
SEVERE_ERR_EXTOP_WHOAMI_PROXYAUTH_INSUFFICIENT_PRIVILEGES_277=You do not have \
 sufficient privileges to use the proxied authorization control
INFO_SOFTREFCACHE_DESCRIPTION_LOCK_TIMEOUT_278=Specifies the maximum length \
 of time in milliseconds that the entry cache should block while attempting to \
 acquire a lock for an entry.  Changes to this configuration attribute will \
 take effect immediately
FATAL_ERR_SOFTREFCACHE_CANNOT_INITIALIZE_279=A fatal error occurred while \
 trying to initialize soft reference entry cache:  %s
INFO_SOFTREFCACHE_DESCRIPTION_INCLUDE_FILTERS_280=Specifies a set of search \
 filters that may be used to indicate which entries should be included in the \
 entry cache.  Entries that do not match at least one of these filters will \
 not be stored in the cache.  If no filters are provided, then any entry will \
 be accepted.  Changes to this configuration attribute will take effect \
 immediately, but will not impact existing entries that are already held in \
 the cache
SEVERE_WARN_SOFTREFCACHE_CANNOT_DECODE_INCLUDE_FILTER_281=An error occurred \
 while attempting to decode the value "%s" from attribute \
 ds-cfg-include-filter of entry %s:  %s.  This filter will not be used when \
 determining whether to store an entry in the cache
SEVERE_WARN_SOFTREFCACHE_CANNOT_DECODE_ANY_INCLUDE_FILTERS_282=An error \
 occurred while attempting to decode any of the values from attribute \
 ds-cfg-include-filter of entry %s.  All entries will be considered eligible \
 for inclusion in the cache
SEVERE_ERR_SOFTREFCACHE_CANNOT_DETERMINE_INCLUDE_FILTERS_283=An error \
 occurred while attempting to determine the value of the ds-cfg-include-filter \
 attribute in configuration entry %s:  %s.  All entries will be considered \
 eligible for inclusion in the cache
INFO_SOFTREFCACHE_DESCRIPTION_EXCLUDE_FILTERS_284=Specifies a set of search \
 filters that may be used to indicate which entries should be excluded from \
 the entry cache.  Entries that match any of these filters will not be stored \
 in the cache.  If no filters are provided, then any entry will be accepted. \
 Changes to this configuration attribute will take effect immediately, but \
 will not impact existing entries that are already held in the cache
SEVERE_WARN_SOFTREFCACHE_CANNOT_DECODE_EXCLUDE_FILTER_285=An error occurred \
 while attempting to decode the value "%s" from attribute \
 ds-cfg-exclude-filter of entry %s:  %s.  This filter will not be used when \
 determining whether to store an entry in the cache
SEVERE_WARN_SOFTREFCACHE_CANNOT_DECODE_ANY_EXCLUDE_FILTERS_286=An error \
 occurred while attempting to decode any of the values from attribute \
 ds-cfg-exclude-filter of entry %s.  All entries will be considered eligible \
 for inclusion in the cache
SEVERE_ERR_SOFTREFCACHE_CANNOT_DETERMINE_EXCLUDE_FILTERS_287=An error \
 occurred while attempting to determine the value of the ds-cfg-exclude-filter \
 attribute in configuration entry %s:  %s.  All entries will be considered \
 eligible for inclusion in the cache
SEVERE_ERR_SOFTREFCACHE_INVALID_LOCK_TIMEOUT_288=The ds-cfg-lock-timeout \
 attribute of entry %s, which specifies the maximum length of time in \
 milliseconds that the cache should block while attempting to obtain a lock on \
 an entry, has an invalid value:  %s.  Its value must be a positive integer, \
 or zero to indicate that it should never block
SEVERE_ERR_SOFTREFCACHE_INVALID_INCLUDE_FILTER_289=The ds-cfg-include-filter \
 attribute of entry %s, which specifies a set of search filters that may be \
 used to control which entries are included in the cache, has an invalid value \
 of "%s":  %s
SEVERE_ERR_SOFTREFCACHE_INVALID_INCLUDE_FILTERS_290=The ds-cfg-include-filter \
 attribute of entry %s, which specifies a set of search filters that may be \
 used to control which entries are included in the cache, has an invalid \
 value:  %s
SEVERE_ERR_SOFTREFCACHE_INVALID_EXCLUDE_FILTER_291=The ds-cfg-exclude-filter \
 attribute of entry %s, which specifies a set of search filters that may be \
 used to control which entries are excluded from the cache, has an invalid \
 value of "%s":  %s
SEVERE_ERR_SOFTREFCACHE_INVALID_EXCLUDE_FILTERS_292=The ds-cfg-exclude-filter \
 attribute of entry %s, which specifies a set of search filters that may be \
 used to control which entries are excluded from the cache, has an invalid \
 value:  %s
INFO_SOFTREFCACHE_UPDATED_LOCK_TIMEOUT_293=The lock timeout that will be used \
 to determine the length of time that the cache should block while attempting \
 to acquire a lock for an entry has been set to %d milliseconds
INFO_SOFTREFCACHE_UPDATED_INCLUDE_FILTERS_294=The set of search filters that \
 will control which entries may be included in the cache has been updated
INFO_SOFTREFCACHE_UPDATED_EXCLUDE_FILTERS_295=The set of search filters that \
 will control which entries should be be excluded from the cache has been \
 updated
INFO_EXACTMAP_DESCRIPTION_MATCH_ATTR_298=Specifies the name or OID of the \
 attribute whose value should exactly match the ID string provided to this \
 identity mapper.  At least one value must be provided.  All values must refer \
@@ -1549,36 +1382,12 @@
 group %s references target group %s which is itself a virtual static group. \
 One virtual static group is not allowed to reference another as its target \
 group
INFO_FSCACHE_UPDATED_MAX_ENTRIES_477=The number of entries that may be held \
 in the entry cache has been updated to %d.  If this value has been reduced, \
 it may take some time for entries to be purged so that the cache can reflect \
 this new setting
INFO_FSCACHE_UPDATED_LOCK_TIMEOUT_478=The lock timeout that will be used to \
 determine the length of time that the cache should block while attempting to \
 acquire a lock for an entry has been set to %d milliseconds
INFO_FSCACHE_UPDATED_INCLUDE_FILTERS_479=The set of search filters that will \
 control which entries may be included in the cache has been updated
INFO_FSCACHE_UPDATED_EXCLUDE_FILTERS_480=The set of search filters that will \
 control which entries should be be excluded from the cache has been updated
INFO_FSCACHE_UPDATED_MAX_MEMORY_SIZE_481=The amount of space that may be used \
 for the entry cache has been updated to %d bytes. If the previous amount has \
 been reduced, it may take some time for entries to be purged so that the \
 current cache space consumption can reflect this new setting
INFO_FSCACHE_UPDATED_TYPE_482=The entry cache type has been changed to %s
INFO_FSCACHE_UPDATED_JE_MEMORY_PCT_483=The amount of memory that may be used \
 for the entry cache Berkeley DB JE internal cache has been updated to %d \
 percent of the total memory available to the JVM
INFO_FSCACHE_UPDATED_JE_MEMORY_SIZE_484=The amount of JVM memory that may be \
 used for the entry cache Berkeley DB JE internal cache has been updated to %d \
 bytes
INFO_FSCACHE_UPDATED_IS_PERSISTENT_485=The persistence state for the entry \
 cache has been changed to %s
SEVERE_ERR_FSCACHE_CANNOT_LOAD_PERSISTENT_DATA_486=An error occurred while \
 trying to load persistent cache. Persistent cache will be flushed now
SEVERE_ERR_FSCACHE_CANNOT_STORE_PERSISTENT_DATA_487=An error occurred while \
 trying to store persistent cache. Persistent cache will be flushed now
FATAL_ERR_FSCACHE_CANNOT_INITIALIZE_488=A fatal error occurred while trying \
FATAL_ERR_FSCACHE_CANNOT_INITIALIZE_486=A fatal error occurred while trying \
 to initialize file system entry cache:  %s
SEVERE_ERR_FSCACHE_CANNOT_LOAD_PERSISTENT_DATA_487=An error occurred while \
 trying to load persistent cache. Persistent cache will be flushed now
SEVERE_ERR_FSCACHE_CANNOT_STORE_PERSISTENT_DATA_488=An error occurred while \
 trying to store persistent cache. Persistent cache will be flushed now
SEVERE_ERR_FSCACHE_CANNOT_STORE_ENTRY_489=Unable to store new cache entry in \
 the file system entry cache
SEVERE_ERR_FSCACHE_CANNOT_RETRIEVE_ENTRY_490=Unable to retrieve an existing \
opends/src/server/org/opends/server/extensions/EntryCacheCommon.java
@@ -281,12 +281,8 @@
   *
   * @param filters  the list of string filter to convert to search filters
   * @param decodeErrorMsg  the error message ID to use in case of error
   * @param errorHandler      an handler used to report errors
   *                          during decoding of filter
   * @param noFilterMsg     the error message ID to use when none of the
   *                          filters was decoded properly
   * @param configEntryDN     the DN of the configuration entry for the
   *                          entry cache
   * @param errorHandler  error handler to report filter decoding errors on
   * @param configEntryDN  the entry cache configuration DN
   *
   * @return the set of search filters
   */
@@ -294,8 +290,6 @@
      SortedSet<String>       filters,
      MessageDescriptor.Arg3<CharSequence, CharSequence, CharSequence>
                              decodeErrorMsg,
      MessageDescriptor.Arg1<CharSequence>
                              noFilterMsg,
      ConfigErrorHandler      errorHandler,
      DN                      configEntryDN
      )
@@ -314,31 +308,12 @@
        }
        catch (DirectoryException de)
        {
          // We couldn't decode this filter. Log a warning and continue.
          errorHandler.reportError(
                  decodeErrorMsg.get(
                          String.valueOf(configEntryDN),
                          curFilter,
                          stackTraceToSingleLineString(de)),
                  false,
                  ResultCode.INVALID_ATTRIBUTE_SYNTAX
          );
        }
      }
      // If none of the filters was decoded properly log an error message
      // (only if we are in initialize phase).
      if ((errorHandler.getConfigPhase() == ConfigPhase.PHASE_INIT)
          && searchFilters.isEmpty())
      {
        if (noFilterMsg != null) {
          errorHandler.reportError(
                  noFilterMsg.get(String.valueOf(configEntryDN)),
                  false, null);
        } else {
          errorHandler.reportError( // TODO: i18n
                  Message.raw("No filter provided: %s", configEntryDN),
                  false, null);
          // We couldn't decode this filter. Report an error and continue.
          Message message = decodeErrorMsg.get(String.valueOf(configEntryDN),
            curFilter, (de.getMessage() != null ? de.getMessage() :
              stackTraceToSingleLineString(de)));
          errorHandler.reportError(message, false,
            ResultCode.INVALID_ATTRIBUTE_SYNTAX);
        }
      }
    }
opends/src/server/org/opends/server/extensions/FIFOEntryCache.java
@@ -36,7 +36,6 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@@ -55,7 +54,6 @@
import org.opends.server.types.DN;
import org.opends.server.types.Entry;
import org.opends.server.types.InitializationException;
import org.opends.server.types.ResultCode;
import org.opends.server.types.SearchFilter;
import org.opends.server.util.ServerConstants;
import org.opends.messages.MessageBuilder;
@@ -100,34 +98,15 @@
   */
  private static final DebugTracer TRACER = getTracer();
  /**
   * The set of time units that will be used for expressing the task retention
   * time.
   */
  private static final LinkedHashMap<String,Double> timeUnits =
       new LinkedHashMap<String,Double>();
  /**
   * The reference to the Java runtime used to determine the amount of memory
   * currently in use.
   */
  private static final Runtime runtime = Runtime.getRuntime();
  // The DN of the configuration entry for this entry cache.
  private DN configEntryDN;
  // The mapping between entry backends/IDs and entries.
  private HashMap<Backend,HashMap<Long,CacheEntry>> idMap;
  // The maximum percentage of JVM memory that should be used by the cache.
  private int maxMemoryPercent;
  // The mapping between DNs and entries.
  private LinkedHashMap<DN,CacheEntry> dnMap;
@@ -147,16 +126,6 @@
  static
  {
    timeUnits.put(TIME_UNIT_MILLISECONDS_ABBR, 1D);
    timeUnits.put(TIME_UNIT_MILLISECONDS_FULL, 1D);
    timeUnits.put(TIME_UNIT_SECONDS_ABBR, 1000D);
    timeUnits.put(TIME_UNIT_SECONDS_FULL, 1000D);
  }
  /**
   * Creates a new instance of this FIFO entry cache.
   */
@@ -180,7 +149,6 @@
  {
    registeredConfiguration = configuration;
    configuration.addFIFOChangeListener (this);
    configEntryDN = configuration.dn();
    // Initialize the cache structures.
    idMap     = new HashMap<Backend,HashMap<Long,CacheEntry>>();
@@ -949,80 +917,6 @@
  /**
   * Makes a best-effort attempt to apply the configuration contained in the
   * provided entry.  Information about the result of this processing should be
   * added to the provided message list.  Information should always be added to
   * this list if a configuration change could not be applied.  If detailed
   * results are requested, then information about the changes applied
   * successfully (and optionally about parameters that were not changed) should
   * also be included.
   *
   * @param  configuration    The entry containing the new configuration to
   *                          apply for this component.
   * @param  detailedResults  Indicates whether detailed information about the
   *                          processing should be added to the list.
   *
   * @return  Information about the result of the configuration update.
   */
  public ConfigChangeResult applyNewConfiguration(
      FIFOEntryCacheCfg configuration,
      boolean           detailedResults
      )
  {
    // Store the current value to detect changes.
    long              prevLockTimeout      = getLockTimeout();
    long              prevMaxEntries       = maxEntries;
    int               prevMaxMemoryPercent = maxMemoryPercent;
    Set<SearchFilter> prevIncludeFilters   = getIncludeFilters();
    Set<SearchFilter> prevExcludeFilters   = getExcludeFilters();
    // Activate the new configuration.
    ConfigChangeResult changeResult = applyConfigurationChange(configuration);
    // Add detailed messages if needed.
    ResultCode resultCode = changeResult.getResultCode();
    boolean configIsAcceptable = (resultCode == ResultCode.SUCCESS);
    if (detailedResults && configIsAcceptable)
    {
      if (maxMemoryPercent != prevMaxMemoryPercent)
      {
        changeResult.addMessage(
            INFO_FIFOCACHE_UPDATED_MAX_MEMORY_PCT.get(maxMemoryPercent,
                maxAllowedMemory));
      }
      if (maxEntries != prevMaxEntries)
      {
        changeResult.addMessage(
            INFO_FIFOCACHE_UPDATED_MAX_ENTRIES.get(maxEntries));
      }
      if (getLockTimeout() != prevLockTimeout)
      {
        changeResult.addMessage(
            INFO_FIFOCACHE_UPDATED_LOCK_TIMEOUT.get(getLockTimeout()));
      }
      if (!getIncludeFilters().equals(prevIncludeFilters))
      {
        changeResult.addMessage(
            INFO_FIFOCACHE_UPDATED_INCLUDE_FILTERS.get());
      }
      if (!getExcludeFilters().equals(prevExcludeFilters))
      {
        changeResult.addMessage(
            INFO_FIFOCACHE_UPDATED_EXCLUDE_FILTERS.get());
      }
    }
    return changeResult;
  }
  /**
   * Parses the provided configuration and configure the entry cache.
   *
   * @param configuration  The new configuration containing the changes.
@@ -1061,34 +955,17 @@
    switch (errorHandler.getConfigPhase())
    {
    case PHASE_INIT:
    case PHASE_ACCEPTABLE:
    case PHASE_APPLY:
      newIncludeFilters = EntryCacheCommon.getFilters (
          configuration.getIncludeFilter(),
          ERR_FIFOCACHE_INVALID_INCLUDE_FILTER,
          WARN_FIFOCACHE_CANNOT_DECODE_ANY_INCLUDE_FILTERS,
          ERR_CACHE_INVALID_INCLUDE_FILTER,
          errorHandler,
          newConfigEntryDN
          );
      newExcludeFilters = EntryCacheCommon.getFilters (
          configuration.getExcludeFilter(),
          WARN_FIFOCACHE_CANNOT_DECODE_EXCLUDE_FILTER,
          WARN_FIFOCACHE_CANNOT_DECODE_ANY_EXCLUDE_FILTERS,
          errorHandler,
          newConfigEntryDN
          );
      break;
    case PHASE_ACCEPTABLE:  // acceptable and apply are using the same
    case PHASE_APPLY:       // error ID codes
      newIncludeFilters = EntryCacheCommon.getFilters (
          configuration.getIncludeFilter(),
          ERR_FIFOCACHE_INVALID_INCLUDE_FILTER,
          null,
          errorHandler,
          newConfigEntryDN
          );
      newExcludeFilters = EntryCacheCommon.getFilters (
          configuration.getExcludeFilter(),
          ERR_FIFOCACHE_INVALID_EXCLUDE_FILTER,
          null,
          ERR_CACHE_INVALID_EXCLUDE_FILTER,
          errorHandler,
          newConfigEntryDN
          );
@@ -1097,9 +974,7 @@
    if (applyChanges && errorHandler.getIsAcceptable())
    {
      configEntryDN    = newConfigEntryDN;
      maxEntries       = newMaxEntries;
      maxMemoryPercent = newMaxMemoryPercent;
      maxAllowedMemory = newMaxAllowedMemory;
      setLockTimeout(newLockTimeout);
opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java
@@ -129,26 +129,17 @@
  private static final FilePermission CACHE_HOME_PERMISSIONS =
      new FilePermission(0700);
  // The DN of the configuration entry for this entry cache.
  private DN configEntryDN;
  // The maximum amount of space in bytes that can be consumed in the filesystem
  // before we need to start purging entries.
  private long maxAllowedMemory;
  // The maximum number of entries that may be held in the cache.
  // Atomic for additional safely and in case we decide to push
  // Atomic for additional safety and in case we decide to push
  // some locks further down later. Does not inhere in additional
  // overhead, via blocking on synchronization primitive, on most
  // modern platforms being implemented via cpu instruction set.
  private AtomicLong maxEntries;
  // The maximum percentage of memory dedicated to JE cache.
  private int jeCachePercent;
  // The maximum amount of memory in bytes dedicated to JE cache.
  private long jeCacheSize;
  // The entry cache home folder to host db environment.
  private String cacheHome;
@@ -209,7 +200,7 @@
  // The configuration to use when encoding entries in the database.
  private EntryEncodeConfig encodeConfig =
    new EntryEncodeConfig(true, false, false);
    new EntryEncodeConfig(true, true, true);
  // JE native properties to configuration attributes map.
  private HashMap<String, String> configAttrMap =
@@ -242,7 +233,6 @@
    registeredConfiguration = configuration;
    configuration.addFileSystemChangeListener (this);
    configEntryDN = configuration.dn();
    // Read and apply configuration.
    boolean applyChanges = true;
@@ -1064,98 +1054,6 @@
  }
  /**
   * Makes a best-effort attempt to apply the configuration contained in the
   * provided entry.  Information about the result of this processing should be
   * added to the provided message list.  Information should always be added to
   * this list if a configuration change could not be applied.  If detailed
   * results are requested, then information about the changes applied
   * successfully (and optionally about parameters that were not changed) should
   * also be included.
   *
   * @param  configuration    The entry containing the new configuration to
   *                          apply for this component.
   * @param  detailedResults  Indicates whether detailed information about the
   *                          processing should be added to the list.
   *
   * @return  Information about the result of the configuration update.
   */
  public ConfigChangeResult applyNewConfiguration(
      FileSystemEntryCacheCfg configuration,
      boolean           detailedResults
      )
  {
    // Store the current value to detect changes.
    long                  prevLockTimeout      = getLockTimeout();
    long                  prevMaxEntries       = maxEntries.longValue();
    Set<SearchFilter>     prevIncludeFilters   = getIncludeFilters();
    Set<SearchFilter>     prevExcludeFilters   = getExcludeFilters();
    long                  prevMaxAllowedMemory = maxAllowedMemory;
    int                   prevJECachePercent   = jeCachePercent;
    long                  prevJECacheSize      = jeCacheSize;
    boolean               prevPersistentCache  = persistentCache;
    // Activate the new configuration.
    ConfigChangeResult changeResult = applyConfigurationChange(configuration);
    // Add detailed messages if needed.
    ResultCode resultCode = changeResult.getResultCode();
    boolean configIsAcceptable = (resultCode == ResultCode.SUCCESS);
    if (detailedResults && configIsAcceptable)
    {
      if (maxEntries.longValue() != prevMaxEntries)
      {
        changeResult.addMessage(
            INFO_FSCACHE_UPDATED_MAX_ENTRIES.get(maxEntries));
      }
      if (getLockTimeout() != prevLockTimeout)
      {
        changeResult.addMessage(
            INFO_FSCACHE_UPDATED_LOCK_TIMEOUT.get(getLockTimeout()));
      }
      if (!getIncludeFilters().equals(prevIncludeFilters))
      {
        changeResult.addMessage(
            INFO_FSCACHE_UPDATED_INCLUDE_FILTERS.get());
      }
      if (!getExcludeFilters().equals(prevExcludeFilters))
      {
        changeResult.addMessage(
            INFO_FSCACHE_UPDATED_EXCLUDE_FILTERS.get());
      }
      if (maxAllowedMemory != prevMaxAllowedMemory)
      {
        changeResult.addMessage(
            INFO_FSCACHE_UPDATED_MAX_MEMORY_SIZE.get(maxAllowedMemory));
      }
      if (jeCachePercent != prevJECachePercent)
      {
        changeResult.addMessage(
            INFO_FSCACHE_UPDATED_JE_MEMORY_PCT.get(jeCachePercent));
      }
      if (jeCacheSize != prevJECacheSize)
      {
        changeResult.addMessage(
            INFO_FSCACHE_UPDATED_JE_MEMORY_SIZE.get(jeCacheSize));
      }
      if (persistentCache != prevPersistentCache)
      {
        changeResult.addMessage(
            INFO_FSCACHE_UPDATED_IS_PERSISTENT.get(
                    String.valueOf(persistentCache)));
      }
    }
    return changeResult;
  }
  /**
   * Parses the provided configuration and configure the entry cache.
   *
   * @param configuration  The new configuration containing the changes.
@@ -1231,17 +1129,15 @@
      newIncludeFilters = EntryCacheCommon.getFilters(
          configuration.getIncludeFilter(),
          ERR_FIFOCACHE_INVALID_INCLUDE_FILTER,
          WARN_FIFOCACHE_CANNOT_DECODE_ANY_INCLUDE_FILTERS,
          ERR_CACHE_INVALID_INCLUDE_FILTER,
          errorHandler,
          configEntryDN
          newConfigEntryDN
          );
      newExcludeFilters = EntryCacheCommon.getFilters (
          configuration.getExcludeFilter(),
          WARN_FIFOCACHE_CANNOT_DECODE_EXCLUDE_FILTER,
          WARN_FIFOCACHE_CANNOT_DECODE_ANY_EXCLUDE_FILTERS,
          ERR_CACHE_INVALID_EXCLUDE_FILTER,
          errorHandler,
          configEntryDN
          newConfigEntryDN
          );
      // JE configuration properties.
      try {
@@ -1287,17 +1183,15 @@
    case PHASE_APPLY:       // error ID codes
      newIncludeFilters = EntryCacheCommon.getFilters (
          configuration.getIncludeFilter(),
          ERR_FIFOCACHE_INVALID_INCLUDE_FILTER,
          null,
          ERR_CACHE_INVALID_INCLUDE_FILTER,
          errorHandler,
          configEntryDN
          newConfigEntryDN
          );
      newExcludeFilters = EntryCacheCommon.getFilters (
          configuration.getExcludeFilter(),
          ERR_FIFOCACHE_INVALID_EXCLUDE_FILTER,
          null,
          ERR_CACHE_INVALID_EXCLUDE_FILTER,
          errorHandler,
          configEntryDN
          newConfigEntryDN
          );
      // Iterate through native JE properties.
      try {
@@ -1414,7 +1308,6 @@
        break;
      }
      configEntryDN    = newConfigEntryDN;
      maxEntries       = new AtomicLong(newMaxEntries);
      maxAllowedMemory = newMaxAllowedMemory;
      persistentCache  = newPersistentCache;
opends/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java
@@ -34,7 +34,6 @@
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.opends.messages.MessageBuilder;
@@ -80,13 +79,6 @@
   */
  private static final DebugTracer TRACER = getTracer();
  // The set of time units that will be used for expressing the task retention
  // time.
  private static final LinkedHashMap<String,Double> timeUnits =
       new LinkedHashMap<String,Double>();
  // The mapping between entry DNs and their corresponding entries.
  private ConcurrentHashMap<DN,SoftReference<CacheEntry>> dnMap;
@@ -94,9 +86,6 @@
  private ConcurrentHashMap<Backend,
               ConcurrentHashMap<Long,SoftReference<CacheEntry>>> idMap;
  // The DN of the configuration entry for this entry cache implementation.
  private DN configEntryDN;
  // The reference queue that will be used to notify us whenever a soft
  // reference is freed.
  private ReferenceQueue<CacheEntry> referenceQueue;
@@ -110,16 +99,6 @@
  static
  {
    timeUnits.put(TIME_UNIT_MILLISECONDS_ABBR, 1D);
    timeUnits.put(TIME_UNIT_MILLISECONDS_FULL, 1D);
    timeUnits.put(TIME_UNIT_SECONDS_ABBR, 1000D);
    timeUnits.put(TIME_UNIT_SECONDS_FULL, 1000D);
  }
  /**
   * Creates a new instance of this soft reference entry cache.  All
   * initialization should be performed in the <CODE>initializeEntryCache</CODE>
@@ -156,7 +135,6 @@
  {
    registeredConfiguration = configuration;
    configuration.addSoftReferenceChangeListener (this);
    configEntryDN = configuration.dn();
    dnMap.clear();
    idMap.clear();
@@ -580,34 +558,17 @@
    switch (errorHandler.getConfigPhase())
    {
    case PHASE_INIT:
    case PHASE_ACCEPTABLE:
    case PHASE_APPLY:
      newIncludeFilters = EntryCacheCommon.getFilters (
          configuration.getIncludeFilter(),
          ERR_SOFTREFCACHE_INVALID_INCLUDE_FILTER,
          WARN_SOFTREFCACHE_CANNOT_DECODE_ANY_INCLUDE_FILTERS,
          ERR_CACHE_INVALID_INCLUDE_FILTER,
          errorHandler,
          newConfigEntryDN
          );
      newExcludeFilters = EntryCacheCommon.getFilters (
          configuration.getExcludeFilter(),
          WARN_SOFTREFCACHE_CANNOT_DECODE_EXCLUDE_FILTER,
          WARN_SOFTREFCACHE_CANNOT_DECODE_ANY_EXCLUDE_FILTERS,
          errorHandler,
          newConfigEntryDN
          );
      break;
    case PHASE_ACCEPTABLE:  // acceptable and apply are using the same
    case PHASE_APPLY:       // error ID codes
      newIncludeFilters = EntryCacheCommon.getFilters (
          configuration.getIncludeFilter(),
          ERR_SOFTREFCACHE_INVALID_INCLUDE_FILTER,
          null,
          errorHandler,
          newConfigEntryDN
          );
      newExcludeFilters = EntryCacheCommon.getFilters (
          configuration.getExcludeFilter(),
          ERR_SOFTREFCACHE_INVALID_EXCLUDE_FILTER,
          null,
          ERR_CACHE_INVALID_EXCLUDE_FILTER,
          errorHandler,
          newConfigEntryDN
          );
@@ -616,8 +577,6 @@
    if (applyChanges && errorHandler.getIsAcceptable())
    {
      configEntryDN = newConfigEntryDN;
      setLockTimeout(newLockTimeout);
      setIncludeFilters(newIncludeFilters);
      setExcludeFilters(newExcludeFilters);