cziegeler 01/04/12 03:06:41
Modified: src/org/apache/cocoon/components/pipeline Tag: xml-cocoon2
CachingEventPipeline.java
Log:
Fixed bug when Cacheable and non cacheable transformers are mixed
Revision Changes Path
No revision
No revision
1.1.2.2 +15 -13
xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/CachingEventPipeline.java
Index: CachingEventPipeline.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/CachingEventPipeline.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- CachingEventPipeline.java 2001/04/11 10:52:33 1.1.2.1
+++ CachingEventPipeline.java 2001/04/12 10:06:39 1.1.2.2
@@ -51,7 +51,7 @@
* The CachingEventPipeline
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.1.2.1 $ $Date: 2001/04/11 10:52:33 $
+ * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/04/12 10:06:39 $
*/
public class CachingEventPipeline extends AbstractEventPipeline {
@@ -112,23 +112,24 @@
pipelineCacheKey.addKey(cck);
// now testing transformers
- Iterator itt = this.transformers.iterator();
Transformer trans;
ComponentCacheKey transCacheKey;
- int index = 0;
+ int transformerIndex = 0;
+ int transformerSize = this.transformers.size();
long transKey;
CacheValidity transValidity;
boolean testTrans = true;
- while (itt.hasNext() == true && testTrans == true) {
- trans = (Transformer)itt.next();
+ while (transformerIndex < transformerSize
+ && testTrans == true) {
+ trans =
(Transformer)this.transformers.get(transformerIndex);
if (trans instanceof Cacheable) {
transKey = ((Cacheable)trans).generateKey();
transValidity =
((Cacheable)trans).generateValidity();
if (transKey != 0 && transValidity != null) {
transCacheKey = new ComponentCacheKey(
ComponentCacheKey.ComponentType_Transformer,
-
(String)this.transformerRoles.get(index),
+
(String)this.transformerRoles.get(transformerIndex),
transKey);
pipelineCacheKey.addKey(transCacheKey);
validityObjects.put(transCacheKey,
transValidity);
@@ -138,12 +139,13 @@
} else {
testTrans = false;
}
- index++;
+ transformerIndex++;
}
// now we have the key to get the cached object
CachedObject cachedObject =
(CachedObject)saxStore.get(pipelineCacheKey);
if (cachedObject != null) {
+ getLogger().debug("Found cached content.");
Iterator validityIterator =
validityObjects.keySet().iterator();
ComponentCacheKey validityKey;
boolean valid = true;
@@ -153,13 +155,11 @@
}
if (valid == true) {
+ getLogger().debug("Using valid cached content.");
// get all transformers which are not cacheable
- itt = this.transformers.iterator();
- while (itt.hasNext() == true) {
- trans = (Transformer)itt.next();
- if (trans instanceof Cacheable == false) {
- this.notCacheableTransformers.add(trans);
- }
+ while (transformerIndex < transformerSize) {
+
this.notCacheableTransformers.add(this.transformers.get(transformerIndex));
+ transformerIndex++;
}
XMLDeserializer deserializer = null;
@@ -182,12 +182,14 @@
this.manager.release((Component)deserializer);
}
} else {
+ getLogger().debug("Cached content is invalid.");
// remove invalid cached object
saxStore.remove(pipelineCacheKey);
cachedObject = null;
}
}
if (cachedObject == null) {
+ getLogger().debug("Caching content for further
request.");
xmlSerializer =
(XMLSerializer)this.manager.lookup(Roles.XML_SERIALIZER);
}
}
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]