Cocoon 3
  1. Cocoon 3
  2. COCOON3-23

StackOverflowError on CachingPipeline.setup(OutputStream)

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.0-alpha-1
    • Fix Version/s: 3.0.0-alpha-2
    • Component/s: cocoon-pipeline
    • Labels:
      None

      Description

      CachingPipeline.setup(OutputStream) calls itself resulting in a StackOverflowError [1]. I suppose that it should create a CachingOutputStream first and then call super.setup like setup(OutputStream outputStream, Map<String, Object> parameters) does [2]. [3] is a short code fragment to reproduce.

      [1]
      @Override
      public void setup(OutputStream outputStream) {
          this.setup(outputStream);
      }

      [2]
      @Override
      public void setup(OutputStream outputStream, Map<String, Object> parameters) {
           // create a caching output stream to intercept the result
           this.cachingOutputStream = new CachingOutputStream(outputStream);

           super.setup(this.cachingOutputStream, parameters);
      }

      [3]
      Pipeline pipeline = new CachingPipeline();
      pipeline.addComponent(new StringGenerator("<x></x>"));
      pipeline.addComponent(new XMLSerializer());

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      pipeline.setup(baos);
      pipeline.execute();

        Activity

          People

          • Assignee:
            Steven Dolg
            Reporter:
            Alexander Daniel
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development