Return-Path: Delivered-To: apmail-cocoon-cvs-archive@www.apache.org Received: (qmail 94052 invoked from network); 14 Apr 2005 15:20:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 14 Apr 2005 15:20:02 -0000 Received: (qmail 88908 invoked by uid 500); 14 Apr 2005 15:19:53 -0000 Delivered-To: apmail-cocoon-cvs-archive@cocoon.apache.org Received: (qmail 88834 invoked by uid 500); 14 Apr 2005 15:19:52 -0000 Mailing-List: contact cvs-help@cocoon.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@cocoon.apache.org list-help: list-unsubscribe: List-Post: Delivered-To: mailing list cvs@cocoon.apache.org Received: (qmail 88774 invoked by uid 99); 14 Apr 2005 15:19:52 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Thu, 14 Apr 2005 08:19:50 -0700 Received: (qmail 93858 invoked by uid 65534); 14 Apr 2005 15:19:45 -0000 Message-ID: <20050414151945.93856.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Mailer: svnmailer-1.0.0-dev Date: Thu, 14 Apr 2005 15:19:45 -0000 Subject: svn commit: r161303 - cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/DefaultCacheManager.java To: cvs@cocoon.apache.org From: vgritsenko@apache.org X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: vgritsenko Date: Thu Apr 14 08:19:44 2005 New Revision: 161303 URL: http://svn.apache.org/viewcvs?view=3Drev&rev=3D161303 Log: perform validity check in accordance with contract Modified: cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/DefaultCach= eManager.java Modified: cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/Defau= ltCacheManager.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/core/forms/trunk/java/org/= apache/cocoon/forms/DefaultCacheManager.java?view=3Ddiff&r1=3D161302&r2=3D1= 61303 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/DefaultCach= eManager.java (original) +++ cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/DefaultCach= eManager.java Thu Apr 14 08:19:44 2005 @@ -15,8 +15,6 @@ */ package org.apache.cocoon.forms; =20 -import java.io.IOException; - import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; @@ -26,22 +24,31 @@ import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.service.Serviceable; import org.apache.avalon.framework.thread.ThreadSafe; + import org.apache.commons.collections.FastHashMap; import org.apache.excalibur.source.Source; import org.apache.excalibur.source.SourceValidity; =20 +import java.io.IOException; +import java.util.Map; + /** * Component implementing the {@link CacheManager} role. * * @version $Id$ */ public class DefaultCacheManager - extends AbstractLogEnabled - implements CacheManager, ThreadSafe, Serviceable, Disposable, Configurab= le { + extends AbstractLogEnabled + implements CacheManager, ThreadSafe, Serviceable, Disposable, + Configurable { =20 protected ServiceManager manager; protected Configuration configuration; - protected FastHashMap cache =3D new FastHashMap(); + protected Map cache; + + public DefaultCacheManager() { + this.cache =3D new FastHashMap(); + } =20 public void service(ServiceManager serviceManager) throws ServiceExcep= tion { this.manager =3D serviceManager; @@ -55,34 +62,25 @@ } =20 public Object get(Source source, String prefix) { - String key =3D prefix + source.getURI(); - SourceValidity newValidity =3D source.getValidity(); - - // If source is not valid then remove object from cache and return= null - if (newValidity =3D=3D null) { - this.cache.remove(key); - return null; - } + // Create a cache key + final String key =3D prefix + source.getURI(); =20 - // If object is not in cache then return null + // If object is not in the cache then return null Object[] objectAndValidity =3D (Object[]) this.cache.get(key); if (objectAndValidity =3D=3D null) { return null; } =20 - // Check stored validity against current source validity - SourceValidity storedValidity =3D (SourceValidity) objectAndValidi= ty[1]; - int valid =3D storedValidity.isValid(); - boolean isValid; + // If object is in the cache, check stored object validity + final SourceValidity validity =3D (SourceValidity) objectAndValidi= ty[1]; + int valid =3D validity.isValid(); if (valid =3D=3D SourceValidity.UNKNOWN) { - valid =3D storedValidity.isValid(newValidity); - isValid =3D (valid =3D=3D SourceValidity.VALID); - } else { - isValid =3D (valid =3D=3D SourceValidity.VALID); + // Compare against current source validity + valid =3D validity.isValid(source.getValidity()); } =20 // If stored object is not valid then remove object from cache and= return null - if (!isValid) { + if (valid !=3D SourceValidity.VALID) { this.cache.remove(key); return null; } @@ -92,11 +90,11 @@ } =20 public void set(Object object, Source source, String prefix) throws IO= Exception { - String key =3D prefix + source.getURI(); - SourceValidity validity =3D source.getValidity(); + final String key =3D prefix + source.getURI(); + final SourceValidity validity =3D source.getValidity(); if (validity !=3D null) { Object[] objectAndValidity =3D {object, validity}; - cache.put(key, objectAndValidity); + this.cache.put(key, objectAndValidity); } } =20