Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-10291

camel-undertow unable to handle large data streams

XMLWordPrintable

    • Icon: Feature Feature
    • Resolution: Done
    • Icon: Major Major
    • fuse-7.5-ER1
    • fuse-7.1
    • Camel
    • Fuse 7.5 Sprint 50 - Dev #1

      An example of a very common use case is the need to upload/download big files to backend systems.
      Customers look for a solution that integrates with their backends for big data uploads/downloads.
      Camel Undertow would need to be reviewed to be capable of handling such use cases.

      There are 4 streaming scenarios to consider for the Camel Undertow component:
      1) Consumer receives (request) large stream from client
      2) Consumer sends (response) large stream to client
      3) Producer sends (request) large stream to backend
      4) Producer receives (response) large stream from backend

      Currently the component is unable to perform the above operations.
      In some scenarios it appears Camel Undertow is trying to read the entire stream causing out-of-memory errors.
      In other scenarios it seems it simply can't deal with Java Input/Output stream objects.

      Find attached a SpringBoot based project able to reproduce the above scenarios.
      It includes 7 JUnits to test streaming capabilities from which the following test cases are failing:

      1) testCamelUndertowConsumerStreamUpload
      2) testCamelUndertowConsumerStreamDownload
      3) testCamelUndertowProducerStreamUpload
      4) testCamelUndertowProducerStreamDownload

      The other JUnits are included to help us understand the mechanics of streaming in Camel.
      The project relies on SpringBoot's embedded server to showcase a working solution without Camel's Undertow component.

      To reproduce the problems, execute:
      > mvn clean test

      or one at a time:
      > mvn clean test -Dtest=StreamTest#testCamelUndertowProducerStreamUpload

              rhn-support-tasato Tadayoshi Sato
              bmesegue@redhat.com Bruno Meseguer (Inactive)
              Jan Bouska Jan Bouska
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

                Created:
                Updated:
                Resolved: