code: private synchronized final boolean _declareNotDiscardable(AbstractItem item)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "_declareNotDiscardable");
  
          boolean notifyRequired = false;
          // we are going to need the item in memory, so we make sure that
          // we pin it with a hard reference
          _strongReferenceToItem = item;
  
          if (_itemIsDiscardableIfPersistentRepresentationStable)
          {
              // if we have become discardable, and we were
              // releasable (stable) then we must notify the cache
              notifyRequired = _persistentRepresentationIsStable;
              _itemIsDiscardableIfPersistentRepresentationStable = false;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "_declareNotDiscardable", Boolean.valueOf(notifyRequired));
          return notifyRequired;
      }
docs: The state has changed so that the item must not be discarded
  regardless of whether it has a stable persistent representation.
  Change the flags that control the discard, and return true if this call
  has resulted in a change to the releasable state.
  
  @return