Package org.apache.derby.iapi.services.cache

Examples of org.apache.derby.iapi.services.cache.Cacheable


  }

    private Object getPermissions( PermissionsDescriptor key) throws StandardException
    {
        // RESOLVE get a READ COMMITTED (shared) lock on the permission row
        Cacheable entry = getPermissionsCache().find( key);
        if( entry == null)
            return null;
        Object perms = entry.getIdentity();
        getPermissionsCache().release( entry);
        return perms;
    }
View Full Code Here


   */
  private void removePermEntryInCache(PermissionsDescriptor perm)
    throws StandardException
  {
    // Remove cached permissions entry if present
    Cacheable cacheEntry = getPermissionsCache().findCached( perm);
    if (cacheEntry != null)
      getPermissionsCache().remove(cacheEntry);
  }
View Full Code Here

  }

    private Object getPermissions( PermissionsDescriptor key) throws StandardException
    {
        // RESOLVE get a READ COMMITTED (shared) lock on the permission row
        Cacheable entry = getPermissionsCache().find( key);
        if( entry == null)
            return null;
        Object perms = entry.getIdentity();
        getPermissionsCache().release( entry);
        return perms;
    }
View Full Code Here

           
            Object[] removeInfo =
                            (Object[]) droppedTableStubInfo.get(logInstant);
            Object identity = removeInfo[1];
            //delete the entry in the container cache.
            Cacheable ccentry =  containerCache.findCached(identity);
            if(ccentry!=null)
              containerCache.remove(ccentry);

            //delete the stub we don't require it during recovery
                        synchronized( this)
View Full Code Here

        stat.findFault++;

        return addEntry(item, key, false, (Object) null);
      }
       
      Cacheable entry = item.use();
      if (entry == null) {
        // item was not added by the other user successfully ...
        synchronized (this) {
          item.unkeep();
        }
View Full Code Here

        stat.findCachedHit++;
     
      item.keepAfterSearch();
    }

    Cacheable entry = item.use();
    if (entry == null) {
      // item was not added by the other user successfully ...
      synchronized (this) {
        item.unkeep();
      }
View Full Code Here

            System.out.println("memoryLeakTrace:Cache:" + name + " " + size());
        }
      }
    }

    Cacheable entry = addEntry(item, key, true, createParameter);
 
    if (SanityManager.DEBUG) {
      if (entry != null)
        SanityManager.ASSERT(item.getEntry() == entry);
    }
View Full Code Here

  */
  private Cacheable addEntry(CachedItem item, Object key, boolean forCreate, Object createParameter)
    throws StandardException {

    Cacheable entry = null;
        long origEntrySize = 0;
        if( useByteCount)
            origEntrySize = getItemSize( item);

    try
    {
      if (SanityManager.DEBUG) {
        if (SanityManager.DEBUG_ON(ClockFactory.CacheTrace))
        {
        SanityManager.DEBUG(ClockFactory.CacheTrace, name +
                  " item " + item + " take on identity " + key);
        }
      }
     
      // tell the object it needs to create itself
      entry = item.takeOnIdentity(this, holderFactory, key, forCreate, createParameter);
    }
    finally
    {
      boolean  notifyWaiters;
      synchronized (this) {

        Object removed = remove(key);
        if (SanityManager.DEBUG) {
          SanityManager.ASSERT(removed == item);
        }

        if (entry != null) {
          // put the actual key into the hash table, not the one that was passed in
          // for the find or create. This is because the caller may re-use the key
          // for another cache operation, which would corrupt our hashtable
          put(entry.getIdentity(), item);
                    if( useByteCount)
                        currentByteCount += ((SizedCacheable) entry).getSize() - origEntrySize;
          item.setValidState(true);
                    validItemCount++;
          notifyWaiters = true;
View Full Code Here

     * @param operator
     */
    public void scan( Matchable filter, Operator operator)
    {
        int itemCount = 1;
        Cacheable entry = null;
        CachedItem item = null;

        // Do not call the operator while holding the synchronization lock.
        // However we cannot access an item's links without holding the synchronization lock,
        // nor can we assume that an item is still in the cache unless we hold the synchronization
View Full Code Here

  public Cacheable takeOnIdentity(CacheManager cm, CacheableFactory holderFactory,
    Object key, boolean forCreate, Object createParameter)
    throws StandardException {

    // tell the object it needs to create itself
    Cacheable oldEntry = entry;
    if (oldEntry == null)
      oldEntry = holderFactory.newCacheable(cm);

    if (forCreate) {
      entry = oldEntry.createIdentity(key, createParameter);
    } else {
      entry = oldEntry.setIdentity(key);
    }

    if (entry != null) {
      // item was found or created
      if (SanityManager.DEBUG) {
View Full Code Here

TOP

Related Classes of org.apache.derby.iapi.services.cache.Cacheable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.