apache-cameleai

Apache Camel File Append Not Working in Windows


I have a simple route where I write some string to an output file and then trying to append the contents of the original file. But it ignores and it overwrites the file.

from("file://inputFolder")
    .routeId("InputFolderToTestSedaRoute")
    .setProperty("myFileConsumedBody", simple("${body}"))
    .setBody(constant("FIRST LINE!"))
    .to("file://{{outputFolder}}")
    .setBody(simple("${exchangeProperty.myFileConsumedBody}"))
    .log("*** STEP 100: ${headers} :***")
    .delay(10000)
    .to("file://outputFolder?fileExist=Append")
    ;

I added delay to observe what happens.

  1. If there is an input file named myFile.txt, Camel picks that file as expected.
  2. It keeps the file to an custome exchange property as in the code.
  3. It opens a file named myFile.txt and writes the content "FIRST LINE!" in it and waits for the delay to expire.
  4. I can open and verify the contents, everything looks good.
  5. Once delay expires, Camel overwrites the file myFile.txt with the original content it picked from input folder (even though I have asked Camel to append).

Am I doing any mistake here? Not sure if this is specific to Windows 10. I am using Camel version 2.24.1. Thanks for your time.


Solution

  • This is bug CAMEL-14127 fixed in version 2.24.3. You can upgrade, or use workaroud with charset option.

    .to("file://outputFolder?fileExist=Append&charset=utf-8")