Good idea.  I have some aspect code for tracing.  I don't want to move
toward aspectj for a while.  It is sort of a pain.  I'd rather get the
package more stable, then remove some of the tracing and then use more
aspectj over the next month or so.  

Aaron

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, February 13, 2002 2:14 PM
> To: [EMAIL PROTECTED]
> Subject: cvs commit: jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/group GroupCache.java
> 
> jtaylor     02/02/13 11:14:00
> 
>   Modified:    .        build.xml default.properties deps.list
>                src/java/org/apache/stratum/jcs/engine Attributes.java
>                         CompositeCacheAttributes.java
>                src/java/org/apache/stratum/jcs/engine/control Cache.java
>                src/java/org/apache/stratum/jcs/engine/group
> GroupCache.java
>   Log:
>   Converted Cache and GroupCache to use commons-logging wrapper to log4j.
> Also,
>   completed removal of 'debug' variable and p() method for those classes.
> 
>   Many of the debug calls that were using that pattern ( and remain as
> calls to
>   log.isDebugEnabled / log.debug ) are just simple tracing calls.
> Specifically
>   method entries ( with params ) and exits. I believe the correct next
> step is
>   to remove those entirely and use aspectj to introduce tracing instead.
> This
>   will clean up the code signifigantly, and will have at least the
> performance
>   of using a static variable ( possibly better since instead of depending
> on the
>   compiler to optomize out those blocks, the code is never introduced ).
> 
>   I also cleaned up the toString methods of a few classes so they print on
> one
>   line, better for logging. I removed one place where the entire cached
> data
>   object is written to the log, and instead have it log the type of the
> object.
>   I was caching some very large strings and other data objects, and having
> the
>   entire toString output in the logs made them much less clear. This is
>   especially a problem since some of my data objects have long and
> meaningfull
>   toString methods for use in velocity templates.
> 
>   There is still a lot of style cleaning to be done in these classes, but
> I
>   wanted to get something in to give Aaron an example of how to use
>   commons-logging rather than log4j directly.
> 
>   Revision  Changes    Path
>   1.17      +1 -0      jakarta-turbine-stratum/build.xml
> 
>   Index: build.xml
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-stratum/build.xml,v
>   retrieving revision 1.16
>   retrieving revision 1.17
>   diff -u -r1.16 -r1.17
>   --- build.xml       12 Feb 2002 21:09:57 -0000      1.16
>   +++ build.xml       13 Feb 2002 19:13:59 -0000      1.17
>   @@ -16,6 +16,7 @@
>        <pathelement location="${commons-beanutils.jar}"/>
>        <pathelement location="${commons-collections.jar}"/>
>        <pathelement location="${commons-util.jar}"/>
>   +    <pathelement location="${commons-logging.jar}"/>
>        <pathelement location="${jgl.jar}"/>
>        <pathelement location="${jetty.jar}"/>
>        <pathelement location="${log4j.jar}"/>
> 
> 
> 
>   1.14      +1 -0      jakarta-turbine-stratum/default.properties
> 
>   Index: default.properties
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-stratum/default.properties,v
>   retrieving revision 1.13
>   retrieving revision 1.14
>   diff -u -r1.13 -r1.14
>   --- default.properties      13 Feb 2002 04:45:10 -0000      1.13
>   +++ default.properties      13 Feb 2002 19:13:59 -0000      1.14
>   @@ -33,6 +33,7 @@
>    commons-beanutils.jar = ${lib.repo}/commons-beanutils.jar
>    commons-collections.jar = ${lib.repo}/commons-collections.jar
>    commons-util.jar = ${lib.repo}/commons-util-0.1-dev.jar
>   +commons-logging.jar = ${lib.repo}/commons-logging.jar
>    dom4j.jar = ${lib.repo}/dom4j-1.1.jar
>    junit.jar = ${lib.repo}/junit-3.7.jar
> 
> 
> 
> 
>   1.7       +1 -0      jakarta-turbine-stratum/deps.list
> 
>   Index: deps.list
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-stratum/deps.list,v
>   retrieving revision 1.6
>   retrieving revision 1.7
>   diff -u -r1.6 -r1.7
>   --- deps.list       13 Feb 2002 19:07:51 -0000      1.6
>   +++ deps.list       13 Feb 2002 19:13:59 -0000      1.7
>   @@ -3,6 +3,7 @@
>    commons-collections.jar
>    commons-logging.jar
>    commons-util-0.1-dev.jar
>   +commons-logging.jar
>    concurrent.jar
>    dom4j-1.1.jar
>    junit-3.7.jar
> 
> 
> 
>   1.5       +11 -7     jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/Attributes.java
> 
>   Index: Attributes.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/Attributes.java,v
>   retrieving revision 1.4
>   retrieving revision 1.5
>   diff -u -r1.4 -r1.5
>   --- Attributes.java 19 Jan 2002 06:27:13 -0000      1.4
>   +++ Attributes.java 13 Feb 2002 19:13:59 -0000      1.5
>   @@ -431,18 +431,22 @@
>        public String toString()
>        {
>            StringBuffer dump = new StringBuffer();
>   -        dump.append( "\n IS_LATERAL = " + IS_LATERAL + "\n" );
>   +
>   +        dump.append( "[ IS_LATERAL = " ).append( IS_LATERAL  )
>   +            .append( ", IS_SPOOL = " ).append( IS_SPOOL )
>   +            .append( ", IS_REMOTE = " ).append( IS_REMOTE )
>   +            .append( ", IS_ETERNAL = " ).append( IS_ETERNAL )
>   +            .append( ", ttl = " ).append( String.valueOf( ttl ) )
>   +            .append( ", createTime = " ).append( String.valueOf(
> createTime ) )
>   +            .append( " ]" );
>   +
>   +        return dump.toString();
>   +
>            //dump.append( " IS_NOFLUSH = " + IS_NOFLUSH + "\n");
>            //dump.append( " IS_REPLY = " + IS_REPLY + "\n");
>            //dump.append( " IS_SYNCHRONIZE = " + IS_SYNCHRONIZE + "\n");
>   -        dump.append( " IS_SPOOL = " + IS_SPOOL + "\n" );
>            //dump.append( " IS_GROUP_TTL_DESTROY = " +
> IS_GROUP_TTL_DESTROY + "\n");
>            //dump.append( " IS_ORIGINAL = " + IS_ORIGINAL + "\n");
>   -        dump.append( " IS_REMOTE = " + IS_REMOTE + "\n" );
>   -        dump.append( " IS_ETERNAL = " + IS_ETERNAL + "\n" );
>   -        dump.append( " ttl = " + String.valueOf( ttl ) + "\n" );
>   -        dump.append( " createTime = " + String.valueOf( createTime ) +
> "\n" );
>   -        return dump.toString();
>        }
> 
> 
> 
> 
> 
>   1.4       +10 -7     jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/CompositeCacheAttributes.ja
> va
> 
>   Index: CompositeCacheAttributes.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/CompositeCacheAttributes.ja
> va,v
>   retrieving revision 1.3
>   retrieving revision 1.4
>   diff -u -r1.3 -r1.4
>   --- CompositeCacheAttributes.java   15 Jan 2002 21:33:33 -0000      1.3
>   +++ CompositeCacheAttributes.java   13 Feb 2002 19:13:59 -0000      1.4
>   @@ -208,13 +208,16 @@
>         */
>        public String toString()
>        {
>   -        StringBuffer info = new StringBuffer();
>   -        info.append( "\n" );
>   -        info.append( "useLateral = " + useLateral + "\n" );
>   -        info.append( "useRemote = " + useRemote + "\n" );
>   -        info.append( "useDisk = " + useDisk + "\n" );
>   -        info.append( "maxObjs = " + maxObjs + "\n" );
>   -        return info.toString();
>   +        StringBuffer dump = new StringBuffer();
>   +
>   +        dump.append( "[ " )
>   +            .append( "useLateral = " ).append( useLateral )
>   +            .append( ", useRemote = " ).append( useRemote )
>   +            .append( ", useDisk = " ).append( useDisk )
>   +            .append( ", maxObjs = " ).append( maxObjs )
>   +            .append( " ]" );
>   +
>   +        return dump.toString();
>        }
> 
>    }
> 
> 
> 
>   1.12      +56 -91    jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/control/Cache.java
> 
>   Index: Cache.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/control/Cache.java,v
>   retrieving revision 1.11
>   retrieving revision 1.12
>   diff -u -r1.11 -r1.12
>   --- Cache.java      13 Feb 2002 04:45:05 -0000      1.11
>   +++ Cache.java      13 Feb 2002 19:13:59 -0000      1.12
>   @@ -77,8 +77,8 @@
>    import org.apache.stratum.jcs.engine.memory.behavior.IMemoryCache;
>    import org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache;
> 
>   -import org.apache.log4j.Category;
>   -import org.apache.log4j.Priority;
>   +import org.apache.commons.logging.Log;
>   +import org.apache.commons.logging.LogSource;
> 
>    //////////////////////////////////////////////////////
>    /**
>   @@ -88,17 +88,11 @@
>     *@author     asmuts
>     *@created    January 15, 2002
>     */
>   -public class Cache implements ICacheHub, ICache, ICompositeCache,
> Serializable
>   +public class Cache
>   +    implements ICacheHub, ICache, ICompositeCache, Serializable
>    {
>   -
>   -    /**
>   -     *  Development debugging parameters. Calls should be removed by
> the
>   -     *  compiler. TODO: limit and replace with a less intrusive logging
> at a
>   -     *  later stage.
>   -     */
>   -    private final static boolean debugcmd = false;//true;
>   -    private final static boolean debugR = false;//true;
>   -
>   +    private static final Log log = LogSource.getInstance( Cache.class
> );
>   +
>        /**
>         *  Description of the Field
>         */
>   @@ -125,11 +119,6 @@
> 
>        private String source_id =
> "org.apache.stratum.jcs.engine.control.Cache";
> 
>   -    /**
>   -     *  log4j
>   -     */
>   -    protected final Category log;
>   -
>        // statistics
>        private static int numInstances;
>        private int ramHit;
>   @@ -180,26 +169,19 @@
>            this.attr = attr;
>            this.cacheAttr = cattr;
> 
>   -        log = Category.getInstance( Cache.class );
>   -
>   -        if ( debugcmd )
>   -        {
>   -            log.setPriority( Priority.DEBUG );
>   -        }
>   -
>            createMemoryCache( cattr );
> 
>            if ( log.isDebugEnabled() )
>            {
>   -            log.debug( "******************* Constructing cache " +
> cacheName );
>   -        }
>   -        if ( debugcmd )
>   +            log.debug( "Constructed cache with name " + cacheName +
>   +                       " and cache attributes: " + cattr );
>   +        }
>   +        else if ( log.isInfoEnabled() )
>            {
>   -            p( "contructed cache " + cacheName + " cattr = " + cattr );
>   +            log.info( "Constructed cache with name: " + cacheName );
>            }
>        }
> 
>   -
> 
> //////////////////////////////////////////////////////////////////////////
> ////
>        /**
>         *  Description of the Method
>   @@ -252,20 +234,25 @@
>            //if ( this.get( key ) != null ) {
>            //  throw new ObjectExistsException( "Object exists for key " +
> key );
>            //}
>   +
>            if ( key == null || val == null )
>            {
>   -            NullPointerException ex = new NullPointerException( "key="
> + key + " and val=" + val
>   -                 + " must not be null." );
>   -            log.error( ex );
>   -            throw ex;
>   +            NullPointerException npe =
>   +                new NullPointerException( "key=" + key + " and val=" +
> val +
>   +                                          " must not be null." );
>   +
>   +            log.error( "Key or value was null. Exception will be
> thrown", npe );
>   +
>   +            throw npe;
>            }
>   +
>            try
>            {
>                updateCaches( key, val, attr );
>            }
>            catch ( IOException ioe )
>            {
>   -            log.error( ioe );
>   +            log.error( "Failed updating caches", ioe );
>            }
>            return;
>        }
>   @@ -283,9 +270,11 @@
>        protected synchronized void updateCaches( Serializable key,
> Serializable val, Attributes attr )
>            throws IOException
>        {
>   -        if ( debugcmd )
>   +        // FIXME: Replace with tracing aspects
>   +
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "updateCaches(key,val,attr) >
> ICache.INCLUDE_REMOTE_CACHE= " + ICache.INCLUDE_REMOTE_CACHE + " key = " +
> key );
>   +            log.debug( "updateCaches(key,val,attr) >
> ICache.INCLUDE_REMOTE_CACHE= " + ICache.INCLUDE_REMOTE_CACHE + " key = " +
> key );
>            }
> 
>            updateCaches( key, val, attr, ICache.INCLUDE_REMOTE_CACHE );
>   @@ -306,10 +295,11 @@
>        protected synchronized void updateCaches( Serializable key,
> Serializable val, Attributes attr, boolean updateRemoteCache )
>            throws IOException
>        {
>   -
>   -        if ( debugcmd )
>   +        // FIXME: Replace with tracing aspects
>   +
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "updateCaches(key,val,attr,updateRemoteCache) >
> updateRemoteCache= " + updateRemoteCache + " key = " + key );
>   +            log.debug( "updateCaches(key,val,attr,updateRemoteCache) >
> updateRemoteCache= " + updateRemoteCache + " key = " + key );
>            }
> 
>            CacheElement ce = new CacheElement( cacheName, key, val );
>   @@ -328,9 +318,11 @@
>        public synchronized void update( ICacheElement ce )
>            throws IOException
>        {
>   -        if ( debugcmd )
>   +        // FIXME: Replace with tracing aspects
>   +
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "update(ce) > ICache.INCLUDE_REMOTE_CACHE= " +
> ICache.INCLUDE_REMOTE_CACHE + " key = " + ce.getKey() );
>   +            log.debug( "update(ce) > ICache.INCLUDE_REMOTE_CACHE= " +
> ICache.INCLUDE_REMOTE_CACHE + " key = " + ce.getKey() );
>            }
>            update( ce, ICache.INCLUDE_REMOTE_CACHE );
>        }
>   @@ -367,24 +359,20 @@
>                throw new IllegalArgumentException(
>                    "key must not end with " + NAME_COMPONENT_DELIMITER + "
> for a put operation" );
>            }
>   +
>   +        // FIXME: Replace with tracing aspects
> 
>            if ( log.isDebugEnabled() )
>   -        {
>   -            StringBuffer params = new StringBuffer();
>   -            params.append( "Cache.updateExclude(ce,updateRemoteCache) >
> updateRemoteCache = " + updateRemoteCache + " key=" + ce.getKey() + ",
> val=" + ce.getVal() + ", " + ce.getAttributes().toString() );
>   -            log.debug( params.toString() );
>   -        }
>   -        if ( debugcmd )
>   -        {
>   -            p( "updateExclude(ce,updadateRemoteCache) > update
> updateRemoteCache = " + updateRemoteCache + " key = " + ce.getKey() + ",
> updateRemoteCache = " + updateRemoteCache );
>   +        {
>   +            log.debug( "Cache.updateExclude(ce,updateRemoteCache) >
> updateRemoteCache = " + updateRemoteCache + " key=" + ce.getKey() + ",
> value type=" + ce.getVal().getClass().getName() + ", " +
> ce.getAttributes().toString() );
> 
>                if ( updateRemoteCache == ICache.INCLUDE_REMOTE_CACHE )
>                {
>   -                p( "updateRemoteCache is TRUE " + updateRemoteCache );
>   +                log.debug( "updateRemoteCache is TRUE " +
> updateRemoteCache );
>                }
>                else
>                {
>   -                p( "updateRemoteCache is FALSE " + updateRemoteCache );
>   +                log.debug( "updateRemoteCache is FALSE " +
> updateRemoteCache );
>                }
>            }
> 
>   @@ -404,10 +392,10 @@
>            for ( int i = 0; i < auxCaches.length; i++ )
>            {
>                ICache aux = auxCaches[i];
>   -
>   -            if ( debugcmd )
>   +
>   +            if ( log.isDebugEnabled() )
>                {
>   -                p( "aux.getCacheType() = " + aux.getCacheType() );
>   +                log.debug( "aux.getCacheType() = " + aux.getCacheType()
> );
>                }
> 
>                // SEND TO REMOTE STORE
>   @@ -443,10 +431,10 @@
>                {
>                    // lateral can't do the checking since it is dependent
> on the cache region
>                    // restrictions
>   -                if ( debugcmd )
>   +                if ( log.isDebugEnabled() )
>                    {
>   -                    p( "lateralcache in aux list" );
>   -                    p( "cattr " + cacheAttr.getUseLateral() );
>   +                    log.debug( "lateralcache in aux list: cattr " +
>   +                               cacheAttr.getUseLateral() );
>                    }
>                    if ( cacheAttr.getUseLateral() &&
> ce.getAttributes().IS_LATERAL && updateRemoteCache )
>                    {
>   @@ -569,10 +557,9 @@
>         */
>        public Serializable get( Serializable key, boolean container,
> boolean invocation )
>        {
>   -
>   -        if ( debugcmd )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "in cache get(key,container)" );
>   +            log.debug( "in cache get(key,container)" );
>            }
> 
>            ICacheElement ce = null;
>   @@ -603,9 +590,9 @@
> 
>                            if ( ( invocation == this.LOCAL_INVOKATION ) ||
> aux.getCacheType() == aux.DISK_CACHE )
>                            {
>   -                            if ( debugcmd )
>   +                            if ( log.isDebugEnabled() )
>                                {
>   -                                p( "get(key,container,invocation) > in
> local block, aux.getCacheType() = " + aux.getCacheType() );
>   +                                log.debug(
> "get(key,container,invocation) > in local block, aux.getCacheType() = " +
> aux.getCacheType() );
>                                }
> 
>                                try
>   @@ -618,9 +605,9 @@
>                                }
>                            }
> 
>   -                        if ( debugcmd )
>   +                        if ( log.isDebugEnabled() )
>                            {
>   -                            p( "ce = " + ce );
>   +                            log.debug( "ce = " + ce );
>                            }
> 
>                            if ( ce != null )
>   @@ -629,12 +616,6 @@
>                                // Item found in one of the auxiliary
> caches.
>                                auxHit[i]++;
> 
>   -                            if ( debugcmd )
>   -                            {
>   -                                p( cacheName + " -- AUX[" + i + "]-HIT
> for " + key );
>   -                                p( "ce.getKey() = " + ce.getKey() );
>   -                                p( "ce.getVal() = " + ce.getVal() );
>   -                            }
>                                if ( log.isDebugEnabled() )
>                                {
>                                    log.debug( cacheName + " -- AUX[" + i +
> "]-HIT for " + key );
>   @@ -698,15 +679,11 @@
>                // Don't we also want to remove it from the cache ?
>                if ( !ce.getAttributes().IS_ETERNAL && ( (
> System.currentTimeMillis() - ce.getAttributes().createTime ) > (
> ce.getAttributes().ttl * 1000 ) ) )
>                {
>   -                // Item expired.
>   -                //if ( log.logLevel >= log.INFO )
>   -                //{
>   -                log.info( ce.getKey() + " expired" );
>   -                //}
>   -                if ( debugcmd )
>   +                if ( log.isInfoEnabled() )
>                    {
>   -                    p( ce.getKey() + " expired" );
>   -                }
>   +                    log.info( ce.getKey() + " expired" );
>   +                }
>   +
>                    this.remove( key );
>                    //throw new ObjectNotFoundException( key + " expired
> from cache" );
>                    return null;
>   @@ -954,7 +931,7 @@
>                    }
>                }
>            }
>   -        p( "Disposed of cache " + cacheName );
>   +
>            log.warn( "Called close for " + cacheName );
> 
>        }
>   @@ -1177,17 +1154,5 @@
>    //  public void dumpCacheEntries() {
>    //    memCache.dumpCacheEntries();
>    //  }
>   -
>   -    ///////////////////////////////////////////////
>   -    /**
>   -     *  Description of the Method
>   -     *
>   -     *@param  s  Description of the Parameter
>   -     */
>   -    public void p( String s )
>   -    {
>   -        //System.out.println( "Cache: " + s );
>   -        log.debug( "Cache: " + s );
>   -    }
> 
>    }
> 
> 
> 
>   1.9       +95 -133   jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/group/GroupCache.java
> 
>   Index: GroupCache.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/group/GroupCache.java,v
>   retrieving revision 1.8
>   retrieving revision 1.9
>   diff -u -r1.8 -r1.9
>   --- GroupCache.java 13 Feb 2002 04:45:05 -0000      1.8
>   +++ GroupCache.java 13 Feb 2002 19:13:59 -0000      1.9
>   @@ -79,6 +79,9 @@
> 
>    import org.apache.stratum.jcs.utils.reuse.ReadWriteLockManager;
> 
>   +import org.apache.commons.logging.Log;
>   +import org.apache.commons.logging.LogSource;
>   +
>    /**
>     *  Group cache is basically a composite cache with the additional
> capability of
>     *  providing automatic and safe attribute name list update for each
>   @@ -95,14 +98,8 @@
>     */
>    public class GroupCache extends Cache implements ICompositeCache
>    {
>   -    //////////////// debug MUST BE SET TO false in production!
> ///////////////////
>   -    /**
>   -     * Development debugging parameters.  Calls should be removed by
> the compiler.
>   -     * TODO: limit and replace with a less intrusive logging at a later
> stage.
>   -     */
>   -    private final static boolean debug =  false;//true;
>   -    private final static boolean debuggan = false;//true;
>   -
>   +    private static final Log log = LogSource.getInstance(
> GroupCache.class );
>   +
>        /**
>         * Manages locking for group item manipulation.
>         */
>   @@ -150,9 +147,10 @@
>        public GroupCache( String cacheName, ICache[] auxCaches,
> ICompositeCacheAttributes cattr, Attributes attr )
>        {
>            super( cacheName, auxCaches, cattr, attr );
>   -        if ( debug )
>   +
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "constructed groupcache " + cacheName + " from super" );
>   +            log.debug( "constructed groupcache " + cacheName + " from
> super" );
>            }
>            //ICompositeCache systemGroupIdCache =
> (ICompositeCache)systemCaches.get( "groupIdCache" );
>        }
>   @@ -171,9 +169,9 @@
>        public GroupCache( String cacheName, ICache[] auxCaches,
> ICompositeCacheAttributes cattr, Attributes attr, ICompositeCache
> systemGroupIdCache )
>        {
>            super( cacheName, auxCaches, cattr, attr );
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "constructed (2) groupcache " + cacheName + " from
> super" );
>   +            log.debug( "constructed (2) groupcache " + cacheName + "
> from super" );
>            }
>            this.systemGroupIdCache = systemGroupIdCache;
>        }
>   @@ -227,14 +225,14 @@
>            {
>                return getGI( ( GroupId ) key, container );
>            }
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( this.getCacheName() + " getting " + key + " from super "
> );
>   +            log.debug( this.getCacheName() + " getting " + key + " from
> super " );
>                if ( invocation == ICache.LOCAL_INVOKATION )
>                {
>   -              p( "invokation is LOCAL" );
>   +              log.debug( "invokation is LOCAL" );
>                } else {
>   -              p( "invokation is NOT Local" );
>   +              log.debug( "invokation is NOT Local" );
>                }
>            }
> 
>   @@ -266,13 +264,13 @@
>         */
>        public Serializable getGAN( GroupAttrName key, boolean container,
> boolean invocation )
>        {
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>                if ( invocation == ICache.LOCAL_INVOKATION )
>                {
>   -              p( "invokation is LOCAL" );
>   +              log.debug( "invokation is LOCAL" );
>                } else {
>   -              p( "invokation is NOT Local" );
>   +              log.debug( "invokation is NOT Local" );
>                }
>            }
> 
>   @@ -316,14 +314,14 @@
>         */
>        public Serializable getGI( GroupId gid, boolean container, boolean
> invocation )
>        {
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "getGi(gid,container,invocation)" );
>   +            log.debug( "getGi(gid,container,invocation)" );
>                if ( invocation == ICache.LOCAL_INVOKATION )
>                {
>   -              p( "invocation is LOCAL" );
>   +              log.debug( "invocation is LOCAL" );
>                } else {
>   -              p( "invocation is NOT Local" );
>   +              log.debug( "invocation is NOT Local" );
>                }
>            }
>            Object obj = null;
>   @@ -332,9 +330,9 @@
>            {
>                //obj = super.get(gid.key, container);
>                obj = systemGroupIdCache.get( gid.key, container,
> invocation );
>   -            if ( debug )
>   +            if ( log.isDebugEnabled() )
>                {
>   -                p( "getGi(gid,container,invocation) > got obj in getGi
> " + obj );
>   +                log.debug( "getGi(gid,container,invocation) > got obj
> in getGi " + obj );
>                }
>            }
>            catch ( IOException ioeg )
>   @@ -360,21 +358,16 @@
>            {
>                locker.readLock( id );
>            }
>   -        catch ( InterruptedException ex )
>   +        catch ( InterruptedException e )
>            {
>   -            // should never happen.
>   -            ex.printStackTrace();
>   -            //////////////// debug MUST BE SET TO false in production!
> ///////////////////
>   -            if ( debug )
>   -            {
>   -                try
>   -                {
>   -                    System.in.read();
>   -                }
>   -                catch ( IOException ignore )
>   -                {}
>   -            }
>   -            throw new IllegalStateException( ex.getMessage() );
>   +            // This previously would wait for console input before
>   +            // continuing if the debug flag was set. I consider this
>   +            // a BAD IDEA since it could introduce signifigant
>   +            // confusion. ( There are other ways to accomplish this,
>   +            // introduction or using a debugger (breakpoints) come to
>   +            // mind. [[EMAIL PROTECTED]]
>   +
>   +            log.error( "Was interrupted while acquiring read lock", e
> );
>            }
>        }
> 
>   @@ -391,21 +384,11 @@
>            {
>                locker.writeLock( id );
>            }
>   -        catch ( InterruptedException ex )
>   +        catch ( InterruptedException e )
>            {
>   -            // should never happen.
>   -            ex.printStackTrace();
>   -            //////////////// debug MUST BE SET TO false in production!
> ///////////////////
>   -            if ( debug )
>   -            {
>   -                try
>   -                {
>   -                    System.in.read();
>   -                }
>   -                catch ( IOException ignore )
>   -                {}
>   -            }
>   -            throw new IllegalStateException( ex.getMessage() );
>   +            // See note in readLock()
>   +
>   +            log.error( "Was interrupted while acquiring read lock", e
> );
>            }
>        }
> 
>   @@ -425,9 +408,9 @@
>            {
>                try
>                {
>   -                if ( debug )
>   +                if ( log.isDebugEnabled() )
>                    {
>   -                    p( "putting via putGAN((GroupAttrName)key, val,
> attr) method" );
>   +                    log.debug( "putting via putGAN((GroupAttrName)key,
> val, attr) method" );
>                    }
>                    putGAN( ( GroupAttrName ) key, val, attr );
>                }
>   @@ -435,9 +418,9 @@
>                {}
>                return;
>            }
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "put(key,val,attr) > updating " + key + " via super
> method, attr.IS_REMOTE = " + attr.IS_REMOTE );
>   +            log.debug( "put(key,val,attr) > updating " + key + " via
> super method, attr.IS_REMOTE = " + attr.IS_REMOTE );
>            }
> 
>            // NOT GROUP RELATED
>   @@ -471,9 +454,9 @@
>            {
>                try
>                {
>   -                if ( debug )
>   +                if ( log.isDebugEnabled() )
>                    {
>   -                    p( "putting via putGAN((GroupAttrName)key, val)
> method" );
>   +                    log.debug( "putting via putGAN((GroupAttrName)key,
> val) method" );
>                    }
>                    putGAN( ( GroupAttrName ) key, val );
>                }
>   @@ -481,9 +464,10 @@
>                {}
>                return;
>            }
>   -        if ( debug )
>   +
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "put(key,value) -- updating " + key + " via super
> method" );
>   +            log.debug( "put(key,value) -- updating " + key + " via
> super method" );
>            }
> 
>            //super.put(key, val);
>   @@ -518,9 +502,9 @@
>            {
>                try
>                {
>   -                if ( debug )
>   +                if ( log.isDebugEnabled() )
>                    {
>   -                    p( "update(ce) > putting via
> putGAN((GroupAttrName)key, val) method" );
>   +                    log.debug( "update(ce) > putting via
> putGAN((GroupAttrName)key, val) method" );
>                    }
>                    putGAN( ( GroupAttrName )ce.getKey(), ce.getVal() );
>                }
>   @@ -528,9 +512,9 @@
>                {}
>                return;
>            }
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "update(ce) > updating " + ce.getKey() + " via super
> method" );
>   +            log.debug( "update(ce) > updating " + ce.getKey() + " via
> super method" );
>            }
> 
>            try
>   @@ -564,14 +548,14 @@
>            {
>                try
>                {
>   -                if ( debug )
>   +                if ( log.isDebugEnabled() )
>                    {
>   -                    p( "update(ce,invocation) >putting via ga method"
> );
>   +                    log.debug( "update(ce,invocation) >putting via ga
> method" );
>                        if ( invocation == ICache.LOCAL_INVOKATION )
>                        {
>   -                      p( "invocation is LOCAL" );
>   +                      log.debug( "invocation is LOCAL" );
>                        } else {
>   -                      p( "invocation is NOT Local" );
>   +                      log.debug( "invocation is NOT Local" );
>                        }
>                    }
>                    Attributes attrE = ( Attributes ) this.attr.copy();
>   @@ -581,9 +565,9 @@
>                {}
>                return;
>            }
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "update(ce,invocation) > updating " + key + " via super
> method" );
>   +            log.debug( "update(ce,invocation) > updating " + key + "
> via super method" );
>            }
> 
>            // TODO: what about id? not possible here?
>   @@ -624,9 +608,9 @@
>        public void putGAN( GroupAttrName key, Serializable val )
>            throws IOException
>        {
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "in putGAN(GroupAttrName key, Serializable val) method"
> );
>   +            log.debug( "in putGAN(GroupAttrName key, Serializable val)
> method" );
>            }
>            if ( key == null || val == null )
>            {
>   @@ -656,10 +640,8 @@
>        private void putGAN( GroupAttrName key, Serializable val,
> Attributes attrE )
>            throws IOException
>        {
>   -        if ( debug )
>   -        {
>   -            p( "in putGAN( gan,val,attr) " );
>   -        }
>   +        log.debug( "in putGAN( gan,val,attr) " );
>   +
>            putGAN( key, val, attrE, ICache.LOCAL_INVOKATION );
>        }
> 
>   @@ -678,15 +660,15 @@
>            throws IOException
>        {
> 
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>                //p( "in putGAN( gan,val,attr,boolean updateRemote) " );
>   -            p( "in putGAN( gan,val,attr,boolean invocation) " );
>   +            log.debug( "in putGAN( gan,val,attr,boolean invocation) "
> );
>                if ( invocation == ICache.LOCAL_INVOKATION )
>                {
>   -              p( "invocation is LOCAL" );
>   +              log.debug( "invocation is LOCAL" );
>                } else {
>   -              p( "invocation is NOT Local" );
>   +              log.debug( "invocation is NOT Local" );
>                }
>            }
> 
>   @@ -699,10 +681,12 @@
>                //updateCaches(key, val, attrE, INCLUDE_REMOTE_CACHE);
>                CacheElement ce = new CacheElement( this.getCacheName(),
> key, val );
>                ce.setAttributes( attrE );
>   -            if ( debuggan )
>   +
>   +            if ( log.isDebugEnabled() )
>                {
>   -                p( "putGAN( gan,val,attr,boolean invocation) > updating
> group attribute via super" );
>   +                log.debug( "putGAN( gan,val,attr,boolean invocation) >
> updating group attribute via super" );
>                }
>   +
>                // SEND THE ELEMENT IF THE INVOCATION WAS LOCAL
>                // decide what to do with this item
>                boolean updateRemote = false;
>   @@ -725,9 +709,9 @@
>                }
>                attrNameSet.add( key.attrName );
> 
>   -            if ( debuggan )
>   +            if ( log.isDebugEnabled() )
>                {
>   -                p( "putGAN( gan,val,attr,boolean invocation) >
> attrNameSet.size()  = " + attrNameSet.size() );
>   +                log.debug( "putGAN( gan,val,attr,boolean invocation) >
> attrNameSet.size()  = " + attrNameSet.size() );
>                }
> 
>                CacheElement ceID = new CacheElement( this.getCacheName(),
> groupId.key, attrNameSet );
>   @@ -814,10 +798,8 @@
>         */
>        public boolean remove( Serializable key )
>        {
>   -        if ( debug )
>   -        {
>   -            p( "in basic remove" );
>   -        }
>   +        log.debug( "in basic remove" );
>   +
>            // if expired super will call remove and we can't have a lock
>            // need a third method
>            return remove( key, ICache.LOCAL_INVOKATION );
>   @@ -839,14 +821,14 @@
>            // THIS IS A GROUP ELEMENT
>            if ( key instanceof GroupAttrName )
>            {
>   -            if ( debug )
>   +            if ( log.isDebugEnabled() )
>                {
>   -                p( "calling removeGAN" );
>   +                log.debug( "calling removeGAN" );
>                    if ( invocation == ICache.LOCAL_INVOKATION )
>                    {
>   -                  p( "invokation is LOCAL" );
>   +                  log.debug( "invokation is LOCAL" );
>                    } else {
>   -                  p( "invokation is NOT Local" );
>   +                  log.debug( "invokation is NOT Local" );
>                    }
>                }
>                return removeGAN( ( GroupAttrName ) key, invocation );
>   @@ -855,28 +837,28 @@
>            // THIS IS A GROUP ID
>            if ( key instanceof GroupId )
>            {
>   -            if ( debug )
>   +            if ( log.isDebugEnabled() )
>                {
>   -                p( "call removeGI" );
>   +                log.debug( "call removeGI" );
>                    if ( invocation == ICache.LOCAL_INVOKATION )
>                    {
>   -                  p( "invokation is LOCAL" );
>   +                  log.debug( "invokation is LOCAL" );
>                    } else {
>   -                  p( "invokation is NOT Local" );
>   +                  log.debug( "invokation is NOT Local" );
>                    }
>                }
>                return removeGI( ( GroupId ) key, invocation );
>            }
> 
>            // NOT GROUP RELATED
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "call super.remove, " + invocation + " for " + key );
>   +            log.debug( "call super.remove, " + invocation + " for " +
> key );
>                if ( invocation == ICache.LOCAL_INVOKATION )
>                {
>   -              p( "invokation is LOCAL" );
>   +              log.debug( "invokation is LOCAL" );
>                } else {
>   -              p( "invokation is NOT Local" );
>   +              log.debug( "invokation is NOT Local" );
>                }
>            }
>            return super.remove( key, invocation );
>   @@ -903,14 +885,14 @@
>        {
> 
>            boolean ret;
>   -        if ( debug )
>   +        if ( log.isDebugEnabled() )
>            {
>   -            p( "in removeGAN" );
>   +            log.debug( "in removeGAN" );
>                if ( invocation == ICache.LOCAL_INVOKATION )
>                {
>   -              p( "invocation is LOCAL" );
>   +              log.debug( "invocation is LOCAL" );
>                } else {
>   -              p( "invocation is NOT Local" );
>   +              log.debug( "invocation is NOT Local" );
>                }
> 
>            }
>   @@ -995,9 +977,9 @@
> 
>                            CacheElement ceID = new CacheElement(
> this.getCacheName(), groupId.key, attrNameSet );
>                            ceID.setAttributes( ce.attr );
>   -                        if ( debug )
>   +                        if ( log.isDebugEnabled() )
>                            {
>   -                            p(
> "updateGroupAttrNameSet((groupAttrname)key,invocation,remove) > calling
> systemGroupIdCache.update( ceID, EXCLUDE_REMOTE_CACHE )" );
>   +                            log.debug(
> "updateGroupAttrNameSet((groupAttrname)key,invocation,remove) > calling
> systemGroupIdCache.update( ceID, EXCLUDE_REMOTE_CACHE )" );
>                            }
>                            // ALWAYS EXCLUDE THE REMOTE CACHE
>                            // TODO: should this be configurable? no
>   @@ -1016,9 +998,9 @@
>                        //removeGI(groupId, invokation, true );
>                        try
>                        {
>   -                        if ( debug )
>   +                        if ( log.isDebugEnabled() )
>                            {
>   -                            p( "calling systemGroupIdCache.remove(
> groupId.key, EXCLUDE_REMOTE_CACHE )" );
>   +                            log.debug( "calling
> systemGroupIdCache.remove( groupId.key, EXCLUDE_REMOTE_CACHE )" );
>                            }
>                            // unlike insertion, removal should go remote
> if locally invoked
>                            boolean updateRemote = false;
>   @@ -1048,10 +1030,8 @@
>         */
>        public void removeGI( GroupId groupId )
>        {
>   -        if ( debug )
>   -        {
>   -            p( "removeGI" );
>   -        }
>   +        log.debug( "removeGI" );
>   +
>            removeGI( groupId, ICache.LOCAL_INVOKATION );
>        }
> 
>   @@ -1089,10 +1069,8 @@
>            // problem with removing expired while getting!
>            skipLock = false;
> 
>   -        if ( debug )
>   -        {
>   -            p( "in removeGI" );
>   -        }
>   +        log.debug( "in removeGI" );
>   +
>            if ( !skipLock )
>            {
>                writeLock( groupId.key );
>   @@ -1145,21 +1123,5 @@
>            }
>            return ce.getAttributes();
>        }
>   -
>   -
>   -    ////////////////////////////////////////
>   -    /**
>   -     *  Easy method for printing to system out for
>   -     *  development debugging.  All of these should be
>   -     *  removed by the compiler since they are in
>   -     *  if blocks controlled by a static final variable.
>   -     *
>   -     *@param  s  Description of the Parameter
>   -     */
>   -    public void p( String s )
>   -    {
>   -        System.out.println( "GroupCache: " + s );
>   -    }
>   -
>    }
> 
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:turbine-dev-
> [EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:turbine-dev-
> [EMAIL PROTECTED]>

Reply via email to