cziegeler 2002/08/13 05:49:22
Modified: src/java/org/apache/cocoon/components/pipeline/impl
AbstractCachingProcessingPipeline.java
src/java/org/apache/cocoon/components/pipeline
AbstractProcessingPipeline.java
Log:
Don't give the serializer the output stream if the pipeline is processed internal -
this should fix the recent authentication and portal login problems.
Revision Changes Path
1.5 +25 -17
xml-cocoon2/src/java/org/apache/cocoon/components/pipeline/impl/AbstractCachingProcessingPipeline.java
Index: AbstractCachingProcessingPipeline.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/pipeline/impl/AbstractCachingProcessingPipeline.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractCachingProcessingPipeline.java 13 Aug 2002 09:58:30 -0000 1.4
+++ AbstractCachingProcessingPipeline.java 13 Aug 2002 12:49:22 -0000 1.5
@@ -231,31 +231,39 @@
if ( this.cacheCompleteResponse ) {
os = new CachingOutputStream( os );
}
- if (this.serializer.shouldSetContentLength()) {
- // set the output stream
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- this.serializer.setOutputStream(baos);
-
- // execute the pipeline:
+ if ( super.serializer != super.lastConsumer ) {
+ // internal processing
if ( this.xmlDeserializer != null ) {
this.xmlDeserializer.deserialize(this.cachedResponse);
} else {
this.generator.generate();
}
- byte[] data = baos.toByteArray();
- environment.setContentLength(data.length);
- os.write(data);
} else {
- // set the output stream
- this.serializer.setOutputStream( os );
- // execute the pipeline:
- if ( this.xmlDeserializer != null ) {
- this.xmlDeserializer.deserialize(this.cachedResponse);
+ if (this.serializer.shouldSetContentLength()) {
+ // set the output stream
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ this.serializer.setOutputStream(baos);
+
+ // execute the pipeline:
+ if ( this.xmlDeserializer != null ) {
+ this.xmlDeserializer.deserialize(this.cachedResponse);
+ } else {
+ this.generator.generate();
+ }
+ byte[] data = baos.toByteArray();
+ environment.setContentLength(data.length);
+ os.write(data);
} else {
- this.generator.generate();
+ // set the output stream
+ this.serializer.setOutputStream( os );
+ // execute the pipeline:
+ if ( this.xmlDeserializer != null ) {
+ this.xmlDeserializer.deserialize(this.cachedResponse);
+ } else {
+ this.generator.generate();
+ }
}
}
-
//
// Now that we have processed the pipeline,
// we do the actual caching
1.20 +19 -14
xml-cocoon2/src/java/org/apache/cocoon/components/pipeline/AbstractProcessingPipeline.java
Index: AbstractProcessingPipeline.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/pipeline/AbstractProcessingPipeline.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- AbstractProcessingPipeline.java 9 Aug 2002 07:47:16 -0000 1.19
+++ AbstractProcessingPipeline.java 13 Aug 2002 12:49:22 -0000 1.20
@@ -485,21 +485,26 @@
throws ProcessingException {
try {
- if (this.serializer.shouldSetContentLength()) {
- // set the output stream
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- this.serializer.setOutputStream(os);
-
- // execute the pipeline:
+ if ( this.serializer != this.lastConsumer ) {
+ // internal processing
this.generator.generate();
- byte[] data = os.toByteArray();
- environment.setContentLength(data.length);
- environment.getOutputStream().write(data);
} else {
- // set the output stream
- this.serializer.setOutputStream(environment.getOutputStream());
- // execute the pipeline:
- this.generator.generate();
+ if (this.serializer.shouldSetContentLength()) {
+ // set the output stream
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ this.serializer.setOutputStream(os);
+
+ // execute the pipeline:
+ this.generator.generate();
+ byte[] data = os.toByteArray();
+ environment.setContentLength(data.length);
+ environment.getOutputStream().write(data);
+ } else {
+ // set the output stream
+ this.serializer.setOutputStream(environment.getOutputStream());
+ // execute the pipeline:
+ this.generator.generate();
+ }
}
} catch ( ProcessingException e ) {
throw e;
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]