Currently the unmarshal process of Camel Bindy will throw an IllegalArgumentException if the provided data stream is empty. Therefore the client has to catch that Exception or bypass the unmarshal process to handle empty files.
It would be an improvement if Bindy will always return an empty collection if the data stream is empty and there is nothing to unmarshal. Or if there is an annotation available to decide how empty stream should be treated (i.e., throw an exception or return an empty collection). The annotation could be part of the @CsvRecord annotation: @CsvRecord(allowEmptyFiles = true).
Please see this discussion on the camel users mailing list for further information: http://camel.465427.n5.nabble.com/Why-does-Bindy-prohibit-empty-files-td5756976.html