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

File component optimization required for file response body


    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.14.1
    • Fix Version/s: 2.16.0
    • Component/s: camel-core
    • Labels:
    • Estimated Complexity:


      I have a producer which makes files (writes data to a temp file) and sets it as output message body. I was expecting Camel file component to just rename the resulting file. But instead it copies the file leaving the temporary file intact. Here's a snippet from the FileOperations class which raised my concern:

                  // we can optimize and use file based if no charset must be used, and the input body is a file
                  File source = null;
                  boolean fileBased = false;
                  if (charset == null) {
                      // if no charset, then we can try using file directly (optimized)
                      Object body = exchange.getIn().getBody();
                      if (body instanceof WrappedFile) {
                          body = ((WrappedFile<?>) body).getFile();
                          fileBased = true;
                      if (body instanceof File) {
                          source = (File) body;
                  if (fileBased) {
                      // okay we know the body is a file based

      So the fileBased is only assumed if we are using a proprietary WrappedFile body, whereas normal file is not considered a fileBased body. Am I missing something?

      We could just treat files the same way as WrappedFile, or have an endpoint option to treat them as such, what do you think?


        1. 0001-CAMEL-8586.patch
          5 kB
          Sergey Zolotaryov
        2. 0002-CAMEL-8586.patch
          3 kB
          Sergey Zolotaryov



            • Assignee:
              davsclaus Claus Ibsen
              anydoby Sergey Zolotaryov
            • Votes:
              0 Vote for this issue
              2 Start watching this issue


              • Created: