cziegeler    02/05/10 01:33:29

  Modified:    src/java/org/apache/cocoon/components/pipeline/impl
                        CachingProcessingPipeline.java
  Log:
  Some more lines
  
  Revision  Changes    Path
  1.8       +23 -5     
xml-cocoon2/src/java/org/apache/cocoon/components/pipeline/impl/CachingProcessingPipeline.java
  
  Index: CachingProcessingPipeline.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/pipeline/impl/CachingProcessingPipeline.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- CachingProcessingPipeline.java    7 May 2002 06:37:32 -0000       1.7
  +++ CachingProcessingPipeline.java    10 May 2002 08:33:29 -0000      1.8
  @@ -89,7 +89,7 @@
    *
    * @since @next-version@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Id: CachingProcessingPipeline.java,v 1.7 2002/05/07 06:37:32 
cziegeler Exp $
  + * @version CVS $Id: CachingProcessingPipeline.java,v 1.8 2002/05/10 08:33:29 
cziegeler Exp $
    */
   public class CachingProcessingPipeline
   extends AbstractProcessingPipeline
  @@ -332,7 +332,9 @@
           }
   
           // now, if we have a key, let's see if there is a cached response
  -        if (this.pipelineCacheKey != null) {
  +        boolean finished = false;
  +        while (this.pipelineCacheKey != null && !finished) {
  +            finished = true;
               CachedResponse response = 
this.cache.get(this.pipelineCacheKey.toString());
               // now test validity
               if (response != null) {
  @@ -350,7 +352,7 @@
                               } else {
                                   validity = new 
CacheValidityToSourceValidity(((Cacheable)this.generator).generateValidity());
                               }
  -                        } else if (i >= firstNotCacheableTransformerIndex + 1) {
  +                        } else if (i <= firstNotCacheableTransformerIndex + 1) {
                               // test transformer
                               final Transformer trans =
                                  (Transformer)this.transformers.get(i-1);
  @@ -361,8 +363,11 @@
                               }
                           } else {
                               // test serializer
  -                            // FIXME
  -                            validity = null;
  +                            if (serializerIsCacheableProcessingComponent) {
  +                                validity = 
((CacheableProcessingComponent)this.serializer).generateValidity();
  +                            } else {
  +                                validity = new 
CacheValidityToSourceValidity(((Cacheable)this.serializer).generateValidity());
  +                            }
                           }
                           if (validity != null) {
                               isValid = validities[i].isValid( validity );
  @@ -382,6 +387,19 @@
                       if (validities[i] == null) {
                           // we can try a shorter key now...
                           // but we don't invalidate the current entry!
  +                        if (i > 0) {
  +                            int deleteCount = validities.length - i;
  +                            if (i > 0 && i <= firstNotCacheableTransformerIndex + 
1) {
  +                                this.firstNotCacheableTransformerIndex = i-1;
  +                            }
  +                            for(int x=0; x < deleteCount; x++) {
  +                                final int deletePos = 
this.pipelineCacheKey.toString().lastIndexOf("CCK:");
  +                                this.pipelineCacheKey.delete(deletePos, 
this.pipelineCacheKey.length());
  +                            }
  +                            finished = false;
  +                        } else {
  +                            this.pipelineCacheKey = null;
  +                        }
                       } else {
                           // invalidate entry
                           this.cache.remove(this.pipelineCacheKey.toString());
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to