Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-11672

Input stream infinitive loop

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.12.4
    • Fix Version/s: 2.20.0
    • Component/s: camel-http
    • Labels:
      None
    • Environment:

      IBM Websphere Liberty Core 17.0.0.1
      IBM Websphere Liberty Core 17.0.0.2
      Reproducible using both IBM JDK 8 and Oracle JDK 8

    • Estimated Complexity:
      Unknown

      Description

      Dear Camel team,
      While working on one integration we found issue related to camel-http component when solution is deployed on IBM Liberty core.
      Same issue is not reproducible on Jetty and Tomcat.

      Issue is connected to the code in IOHelper and CachedOutputStream$WrappedInputStream
      We are using version 2.12.4 but I can see that same code is used also in latest versions.

      https://github.com/apache/camel/blob/camel-2.12.4/camel-core/src/main/java/org/apache/camel/util/IOHelper.java

      Problematic part are lines 196, 198 and 204.
      Basically stream reader which is used org.apache.camel.converter.stream.CachedOutputStream$WrappedInputStream is not returning -1 like response of read method if empty string is provided on input.
      This is wrong by specification of InputReader interface.

      // in the case there is input which is empty string
      while ( -1 != n)

      { … int n = input.read(buffer); ---> this is never -1 if string is empty "" already 0 and we have infinitive loop !!! }

      For our use case we have applied change in IOHelper to check and directly cover if stream reader produce same (non-valid) response to not produce infinitive loop.

      If any questions around reproducing issue please let me know

      Best regards,
      Zeljko

        Attachments

          Activity

            People

            • Assignee:
              davsclaus Claus Ibsen
              Reporter:
              zeljkov Zeljko Vukovic
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: