Interface IdentityMapAccessor


public interface IdentityMapAccessor
PUBLIC: IdentityMapAccessor provides the public interface into all functionality associated with EclipseLink's cache. An appropriate IdentityMapAccessor can be obtained from a session with its getIdentityMapAccessor() method. Methods that used to be called on the Session to access identity maps can now be called through the IdentityMapAccessor.

For instance, to initialize identity maps the code used to be: session.initializeIdentityIdentityMaps()
With this class, the code now is:
session.getIdentityMapAccessor().initializeIdentityMaps()

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    ADVANCED: Clear all the query caches
    void
    clearQueryCache(String sessionQueryName)
    ADVANCED: Clear the query cache associated with the named query on the session.
    void
    clearQueryCache(String descriptorQueryName, Class queryClass)
    ADVANCED: Clear the query cache associated with the named query on the descriptor for the given class.
    void
    ADVANCED: Clear the query class associated with the passed-in read query.
    boolean
    ADVANCED: Returns true if the identity map contains an Object with the same primary key and Class type of the given domainObject.
    boolean
    containsObjectInIdentityMap(Object primaryKey, Class theClass)
    ADVANCED: Returns true if the identity map contains an Object with the same primary key and Class type as those specified.
    boolean
    containsObjectInIdentityMap(Record rowContainingPrimaryKey, Class theClass)
    ADVANCED: Returns true if the identity map contains an Object with the same primary key of the specified row (i.e.
    getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy)
    ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects.
    getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects)
    ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects.
    getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy)
    ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects.
    getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy, boolean shouldReturnInvalidatedObjects)
    ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects.
    getFromIdentityMap(Object domainObject)
    ADVANCED: Returns the Object from the identity map with the same primary key and Class type of the given domainObject.
    getFromIdentityMap(Object primaryKey, Class theClass)
    ADVANCED: Returns the Object from the identity map with the same primary key and Class type as those specified.
    getFromIdentityMap(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects)
    ADVANCED: Returns the Object from the identity map with the same primary key and Class type as specified.
    getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow)
    ADVANCED: Queries the cache in-memory and returns an Object from this identity map.
    getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy)
    ADVANCED: Queries the cache in-memory and returns an Object from this identity map.
    getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy)
    ADVANCED: Queries the cache in-memory and returns an Object from this identity map.
    getFromIdentityMap(Record rowContainingPrimaryKey, Class theClass)
    ADVANCED: Returns the Object from the identity map with the same primary key of the specified row (i.e.
    getFromIdentityMap(Record rowContainingPrimaryKey, Class theClass, boolean shouldReturnInvalidatedObjects)
    ADVANCED: Returns the Object from the identity map with the same primary key of the specified row and Class type.
    long
    ADVANCED: Returns the remaining life of the given Object.
    getWriteLockValue(Object domainObject)
    ADVANCED: Extracts and returns the write lock value from the identity map through the given Object.
    getWriteLockValue(Object primaryKey, Class theClass)
    ADVANCED: Extracts the write lock value from the identity map through the passed in primaryKey and Class type.
    void
    PUBLIC: Resets the entire Object cache.
    void
    PUBLIC: Resets the identity map for only the instances of the given Class type.
    void
    PUBLIC: Resets the entire local Object cache.
    void
    ADVANCED: Sets all of the Objects for all classes to be invalid in the cache.
    void
    ADVANCED: Sets all of the Objects of the specified Class type to be invalid in the cache.
    void
    invalidateClass(Class theClass, boolean recurse)
    ADVANCED: Sets all of the Objects of the specified Class type to be invalid in the cache.
    void
    ADVANCED: Sets an Object to be invalid in the cache.
    void
    invalidateObject(Object object, boolean invalidateCluster)
    ADVANCED: Set an object to be invalid in the cache.
    void
    invalidateObject(Object primaryKey, Class theClass)
    ADVANCED: Sets an Object with the specified primary key and Class type to be invalid in the cache.
    void
    invalidateObject(Object primaryKey, Class theClass, boolean invalidateCluster)
    ADVANCED: Set an object to be invalid in the cache.
    void
    invalidateObject(Record rowContainingPrimaryKey, Class theClass)
    ADVANCED: Sets an Object with the specified primary key of the passed in Row and Class type to be invalid in the cache.
    void
    invalidateObject(Record rowContainingPrimaryKey, Class theClass, boolean invalidateCluster)
    ADVANCED: Set an object to be invalid in the cache.
    void
    ADVANCED: Sets all of the Objects in the given collection to be invalid in the TopLink identity maps.
    void
    invalidateObjects(Collection collection, boolean invalidateCluster)
    ADVANCED: Set all of the objects in the given collection to be invalid in the cache.
    void
    invalidateObjects(Expression selectionCriteria)
    ADVANCED: Sets all of the Objects matching the given Expression to be invalid in the cache.
    void
    invalidateObjects(Expression selectionCriteria, Class theClass, Record translationRow, boolean shouldInvalidateOnException)
    ADVANCED: Queries the cache in-memory with the passed in criteria and invalidates matching Objects.
    void
    invalidateQueryCache(Class classThatChanged)
    ADVANCED: Invalidate/remove any results for any query for the class from the query cache.
    boolean
    isValid(Object object)
    ADVANCED: Returns true if an Object with the same primary key and Class type of the the given Object is valid in the cache.
    boolean
    isValid(Object primaryKey, Class theClass)
    ADVANCED: Returns true if the Object described by the given primary key and Class type is valid in the cache.
    boolean
    isValid(Record rowContainingPrimaryKey, Class theClass)
    ADVANCED: Returns true if this Object with the given primary key of the Row and Class type given is valid in the cache.
    void
    PUBLIC: Used to print all the Objects in the identity map of the given Class type.
    void
    PUBLIC: Used to print all the locks in every identity map in this session.
    void
    PUBLIC: Used to print all the Objects in every identity map in this session.
    putInIdentityMap(Object domainObject)
    ADVANCED: Registers the given Object with the identity map.
    putInIdentityMap(Object domainObject, Object key)
    ADVANCED: Registers the Object and given key with the identity map.
    putInIdentityMap(Object domainObject, Object key, Object writeLockValue)
    ADVANCED: Registers the Object and given key with the identity map.
    putInIdentityMap(Object domainObject, Object key, Object writeLockValue, long readTime)
    ADVANCED: Registers the given Object with the identity map.
    ADVANCED: Removes the Object from the Object cache.
    ADVANCED: Removes the Object with given primary key and Class from the Object cache.
    void
    updateWriteLockValue(Object primaryKey, Class theClass, Object writeLockValue)
    ADVANCED: Updates the write lock value in the cache for the Object with same primary key as the given Object.
    void
    updateWriteLockValue(Object domainObject, Object writeLockValue)
    ADVANCED: Updates the write lock value in the identity map for cache key of the primary key the given Object.
    void
    ADVANCED: This can be used to help debugging an Object identity problem.
  • Method Details

    • clearQueryCache

      void clearQueryCache()
      ADVANCED: Clear all the query caches
    • clearQueryCache

      void clearQueryCache(ReadQuery query)
      ADVANCED: Clear the query class associated with the passed-in read query.
    • clearQueryCache

      void clearQueryCache(String sessionQueryName)
      ADVANCED: Clear the query cache associated with the named query on the session.
    • clearQueryCache

      void clearQueryCache(String descriptorQueryName, Class queryClass)
      ADVANCED: Clear the query cache associated with the named query on the descriptor for the given class.
    • invalidateQueryCache

      void invalidateQueryCache(Class classThatChanged)
      ADVANCED: Invalidate/remove any results for any query for the class from the query cache. This is used to invalidate the query cache on any change.
    • containsObjectInIdentityMap

      boolean containsObjectInIdentityMap(Object domainObject)
      ADVANCED: Returns true if the identity map contains an Object with the same primary key and Class type of the given domainObject.
    • containsObjectInIdentityMap

      boolean containsObjectInIdentityMap(Object primaryKey, Class theClass)
      ADVANCED: Returns true if the identity map contains an Object with the same primary key and Class type as those specified.
    • containsObjectInIdentityMap

      boolean containsObjectInIdentityMap(Record rowContainingPrimaryKey, Class theClass)
      ADVANCED: Returns true if the identity map contains an Object with the same primary key of the specified row (i.e. the database record) and Class type.
    • getAllFromIdentityMap

      Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException
      ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects. If the expression is too complex an exception will be thrown. Only returns Objects that are invalid from the map if specified with the boolean shouldReturnInvalidatedObjects.
      Parameters:
      selectionCriteria - Expression selecting the Objects to be returned
      theClass - Class to be considered
      translationRow - Record
      valueHolderPolicy - see InMemoryQueryIndirectionPolicy
      shouldReturnInvalidatedObjects - boolean - true if only invalid Objects should be returned
      Returns:
      Vector of Objects
      Throws:
      QueryException
    • getAllFromIdentityMap

      Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException
      ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects. If the expression is too complex an exception will be thrown. Only returns Objects that are invalid from the map if specified with the boolean shouldReturnInvalidatedObjects.
      Parameters:
      selectionCriteria - Expression selecting the Objects to be returned
      theClass - Class to be considered
      translationRow - Record
      valueHolderPolicy - see InMemoryQueryIndirectionPolicy
      shouldReturnInvalidatedObjects - boolean - true if only invalid Objects should be returned
      Returns:
      Vector of Objects
      Throws:
      QueryException
    • getAllFromIdentityMap

      Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException
      ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects. If the expression is too complex an exception will be thrown.
      Parameters:
      selectionCriteria - Expression selecting the Objects to be returned
      theClass - Class to be considered
      translationRow - Record
      valueHolderPolicy - see InMemoryQueryIndirectionPolicy
      Returns:
      Vector of Objects with type theClass and matching the selectionCriteria
      Throws:
      QueryException
    • getAllFromIdentityMap

      Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy) throws QueryException
      ADVANCED: Queries the cache in-memory with the passed in criteria and returns matching Objects. If the expression is too complex an exception will be thrown.
      Parameters:
      selectionCriteria - Expression selecting the Objects to be returned
      theClass - Class to be considered
      translationRow - Record
      valueHolderPolicy - see InMemoryQueryIndirectionPolicy
      Returns:
      Vector of Objects with type theClass and matching the selectionCriteria
      Throws:
      QueryException
    • getFromIdentityMap

      Object getFromIdentityMap(Object domainObject)
      ADVANCED: Returns the Object from the identity map with the same primary key and Class type of the given domainObject.
      Parameters:
      domainObject - Object
      Returns:
      Object from identity map, may be null.
    • getFromIdentityMap

      Object getFromIdentityMap(Object primaryKey, Class theClass)
      ADVANCED: Returns the Object from the identity map with the same primary key and Class type as those specified.
      Returns:
      Object from identity map, may be null.
    • getFromIdentityMap

      Object getFromIdentityMap(Record rowContainingPrimaryKey, Class theClass)
      ADVANCED: Returns the Object from the identity map with the same primary key of the specified row (i.e. the database record) and Class type.
      Parameters:
      rowContainingPrimaryKey - Record
      theClass - Class
      Returns:
      Object from identity map, may be null.
    • getFromIdentityMap

      Object getFromIdentityMap(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects)
      ADVANCED: Returns the Object from the identity map with the same primary key and Class type as specified. May return null and will only return an Object that is invalidated if specified with the boolean shouldReturnInvalidatedObjects.
      Returns:
      Object from identity map, may be null.
    • getFromIdentityMap

      Object getFromIdentityMap(Record rowContainingPrimaryKey, Class theClass, boolean shouldReturnInvalidatedObjects)
      ADVANCED: Returns the Object from the identity map with the same primary key of the specified row and Class type. May return null and will only Only return an Object that is invalidated if specified with the boolean shouldReturnInvalidatedObjects.
      Parameters:
      rowContainingPrimaryKey - Record
      theClass - Class
      shouldReturnInvalidatedObjects - boolean
      Returns:
      Object from identity map, may be null.
    • getFromIdentityMap

      Object getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow) throws QueryException
      ADVANCED: Queries the cache in-memory and returns an Object from this identity map. If the Object is not found with the passed in Class type, Row and selectionCriteria, null is returned. If the expression is too complex an exception will be thrown.
      Parameters:
      selectionCriteria - Expression
      theClass - Class
      translationRow - Record
      Returns:
      Object from identity map, may be null
      Throws:
      QueryException
    • getFromIdentityMap

      Object getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException
      ADVANCED: Queries the cache in-memory and returns an Object from this identity map. If the Object is not found with the passed in Class type, Row and selectionCriteria, null is returned. This method allows for control of un-instantiated indirection access with valueHolderPolicy. If the expression is too complex an exception will be thrown.
      Parameters:
      selectionCriteria - Expression
      theClass - Class
      translationRow - Record
      valueHolderPolicy - see InMemoryQueryIndirectionPolicy
      Returns:
      Object from identity map, may be null
      Throws:
      QueryException
    • getFromIdentityMap

      Object getFromIdentityMap(Expression selectionCriteria, Class theClass, Record translationRow, int valueHolderPolicy) throws QueryException
      ADVANCED: Queries the cache in-memory and returns an Object from this identity map. If the Object is not found with the passed in Class type, Row and selectionCriteria, null is returned. This method allows for control of un-instantiated indirection access with valueHolderPolicy. If the expression is too complex an exception will be thrown.
      Parameters:
      selectionCriteria - Expression
      theClass - Class
      translationRow - Record
      valueHolderPolicy - see InMemoryQueryIndirectionPolicy
      Returns:
      Object from identity map, may be null
      Throws:
      QueryException
    • getRemainingValidTime

      long getRemainingValidTime(Object object)
      ADVANCED: Returns the remaining life of the given Object. This method is associated with use of cache invalidation feature and returns the difference between the next expiry time of the Object and its read time. The method will return 0 for invalidated Objects.
      Parameters:
      object - Object under consideration
      Returns:
      long time in milliseconds
    • getWriteLockValue

      Object getWriteLockValue(Object domainObject)
      ADVANCED: Extracts and returns the write lock value from the identity map through the given Object. Write lock values are used when optimistic locking is stored in the cache instead of the object.
      Parameters:
      domainObject - Object
      Returns:
      Object for versioning
    • getWriteLockValue

      Object getWriteLockValue(Object primaryKey, Class theClass)
      ADVANCED: Extracts the write lock value from the identity map through the passed in primaryKey and Class type. Write lock values are used when optimistic locking is stored in the cache instead of the object.
    • initializeAllIdentityMaps

      void initializeAllIdentityMaps()
      PUBLIC: Resets the entire Object cache.

      NOTE: Be careful using this method. This method blows away both this session's and its parent's caches. This includes the server cache or any other cache. This throws away any Objects that have been read in. Extreme caution should be used before doing this because Object identity will no longer be maintained for any Objects currently read in. This should only be called if the application knows that it no longer has references to Objects held in the cache.

    • initializeIdentityMap

      void initializeIdentityMap(Class theClass)
      PUBLIC: Resets the identity map for only the instances of the given Class type. For inheritance the user must make sure that they only use the root class.

      NOTE: Caution must be used in doing this to ensure that the Objects within the identity map are not referenced from other Objects of other classes or from the application.

      Parameters:
      theClass - Class
    • initializeIdentityMaps

      void initializeIdentityMaps()
      PUBLIC: Resets the entire local Object cache.

      NOTE: This throws away any Objects that have been read in. Extreme caution should be used before doing this because Object identity will no longer be maintained for any Objects currently read in. This should only be called if the application knows that it no longer has references to Objects held in the cache.

    • invalidateObject

      void invalidateObject(Object object)
      ADVANCED: Sets an Object to be invalid in the cache. If this Object does not exist in the cache, this method will return without any action.
      Parameters:
      object - Object
    • invalidateObject

      void invalidateObject(Object object, boolean invalidateCluster)
      ADVANCED: Set an object to be invalid in the cache.
      Parameters:
      invalidateCluster - if true the invalidation will be broadcast to each server in the cluster.
    • invalidateObject

      void invalidateObject(Object primaryKey, Class theClass)
      ADVANCED: Sets an Object with the specified primary key and Class type to be invalid in the cache. If the Object does not exist in the cache, this method will return without any action.
    • invalidateObject

      void invalidateObject(Object primaryKey, Class theClass, boolean invalidateCluster)
      ADVANCED: Set an object to be invalid in the cache.
      Parameters:
      invalidateCluster - if true the invalidation will be broadcast to each server in the cluster.
    • invalidateObject

      void invalidateObject(Record rowContainingPrimaryKey, Class theClass)
      ADVANCED: Sets an Object with the specified primary key of the passed in Row and Class type to be invalid in the cache. If the Object does not exist in the cache, this method will return without any action.
    • invalidateObject

      void invalidateObject(Record rowContainingPrimaryKey, Class theClass, boolean invalidateCluster)
      ADVANCED: Set an object to be invalid in the cache.
      Parameters:
      invalidateCluster - if true the invalidation will be broadcast to each server in the cluster.
    • invalidateObjects

      void invalidateObjects(Collection collection)
      ADVANCED: Sets all of the Objects in the given collection to be invalid in the TopLink identity maps. This method will take no action for any Objects in the collection that do not exist in the cache.
      Parameters:
      collection - objects to be invalidated
    • invalidateObjects

      void invalidateObjects(Collection collection, boolean invalidateCluster)
      ADVANCED: Set all of the objects in the given collection to be invalid in the cache.
      Parameters:
      invalidateCluster - if true the invalidation will be broadcast to each server in the cluster.
    • invalidateObjects

      void invalidateObjects(Expression selectionCriteria)
      ADVANCED: Sets all of the Objects matching the given Expression to be invalid in the cache.

      Example - Invalidating Employee Objects with non-null first names:

      ExpressionBuilder eb = new ExpressionBuilder(Employee.class);
      Expression exp = eb.get("firstName").notNull();
      session.getIdentityMapAccessor().invalidateObjects(exp);

      Parameters:
      selectionCriteria - Expression
    • invalidateObjects

      void invalidateObjects(Expression selectionCriteria, Class theClass, Record translationRow, boolean shouldInvalidateOnException)
      ADVANCED: Queries the cache in-memory with the passed in criteria and invalidates matching Objects. If the expression is too complex either all or none object of theClass invalidated (depending on shouldInvalidateOnException value).
      Parameters:
      selectionCriteria - Expression selecting the Objects to be returned
      theClass - Class to be considered
      translationRow - Record
      shouldInvalidateOnException - boolean indicates weather to invalidate the object if conform threw exception.
    • invalidateAll

      void invalidateAll()
      ADVANCED: Sets all of the Objects for all classes to be invalid in the cache. It will recurse on inheritance.
    • invalidateClass

      void invalidateClass(Class theClass)
      ADVANCED: Sets all of the Objects of the specified Class type to be invalid in the cache. Will set the recurse on inheritance to true.
    • invalidateClass

      void invalidateClass(Class theClass, boolean recurse)
      ADVANCED: Sets all of the Objects of the specified Class type to be invalid in the cache. User can set the recurse flag to false if they do not want to invalidate all the same Class types within an inheritance tree.
      Parameters:
      theClass - Class
      recurse - boolean
    • isValid

      boolean isValid(Object object)
      ADVANCED: Returns true if an Object with the same primary key and Class type of the the given Object is valid in the cache.
    • isValid

      boolean isValid(Object primaryKey, Class theClass)
      ADVANCED: Returns true if the Object described by the given primary key and Class type is valid in the cache.
    • isValid

      boolean isValid(Record rowContainingPrimaryKey, Class theClass)
      ADVANCED: Returns true if this Object with the given primary key of the Row and Class type given is valid in the cache.
    • printIdentityMap

      void printIdentityMap(Class theClass)
      PUBLIC: Used to print all the Objects in the identity map of the given Class type. The output of this method will be logged to this session's SessionLog at SEVERE level.
    • printIdentityMaps

      void printIdentityMaps()
      PUBLIC: Used to print all the Objects in every identity map in this session. The output of this method will be logged to this session's SessionLog at SEVERE level.
    • printIdentityMapLocks

      void printIdentityMapLocks()
      PUBLIC: Used to print all the locks in every identity map in this session. The output of this method will be logged to this session's SessionLog at FINEST level.
    • putInIdentityMap

      Object putInIdentityMap(Object domainObject)
      ADVANCED: Registers the given Object with the identity map. The Object must always be registered with its version number if optimistic locking is used.
      Parameters:
      domainObject - Object
      Returns:
      Object
    • putInIdentityMap

      Object putInIdentityMap(Object domainObject, Object key)
      ADVANCED: Registers the Object and given key with the identity map. The Object must always be registered with its version number if optimistic locking is used.
    • putInIdentityMap

      Object putInIdentityMap(Object domainObject, Object key, Object writeLockValue)
      ADVANCED: Registers the Object and given key with the identity map. The Object must always be registered with its version number if optimistic locking is used.
    • putInIdentityMap

      Object putInIdentityMap(Object domainObject, Object key, Object writeLockValue, long readTime)
      ADVANCED: Registers the given Object with the identity map. The Object must always be registered with its version number if optimistic locking is used. The readTime may also be included in the cache key as it is constructed.
      Parameters:
      domainObject - Object
      key - Object
      writeLockValue - Object for versioning
      readTime - long, time in milliseconds
      Returns:
      Object the Object put into the identity map
    • removeFromIdentityMap

      Object removeFromIdentityMap(Object domainObject)
      ADVANCED: Removes the Object from the Object cache.

      NOTE: Caution should be used when calling to avoid violating Object identity. The application should only call this if its known that no references to the Object exist.

      Parameters:
      domainObject - Object
      Returns:
      Object the Object removed from the identity map
    • removeFromIdentityMap

      Object removeFromIdentityMap(Object key, Class theClass)
      ADVANCED: Removes the Object with given primary key and Class from the Object cache.

      NOTE: Caution should be used when calling to avoid violating Object identity. The application should only call this if its known that no references to the Object exist.

      Returns:
      Object the Object removed from the identity map
    • updateWriteLockValue

      void updateWriteLockValue(Object domainObject, Object writeLockValue)
      ADVANCED: Updates the write lock value in the identity map for cache key of the primary key the given Object.
      Parameters:
      domainObject - Object
      writeLockValue - Object for versioning
    • updateWriteLockValue

      void updateWriteLockValue(Object primaryKey, Class theClass, Object writeLockValue)
      ADVANCED: Updates the write lock value in the cache for the Object with same primary key as the given Object. The write lock values is used when optimistic locking is stored in the cache instead of in the object.
    • validateCache

      void validateCache()
      ADVANCED: This can be used to help debugging an Object identity problem. An Object identity problem is when an Object in the cache references an Object that is not in the cache. This method will validate that all cached Objects are in a correct state.