Claus Ibsen created CAMEL-25932:
-----------------------------------

             Summary: camel-docling - a stream body fails, though the 
documentation lists InputStream as an input
                 Key: CAMEL-25932
                 URL: https://issues.apache.org/jira/browse/CAMEL-25932
             Project: Camel
          Issue Type: Bug
          Components: camel-docling
    Affects Versions: 4.18.0, 4.22.0, 4.23.0
            Reporter: Claus Ibsen
             Fix For: 4.24.0


The documentation of the component lists {{InputStream}} among the bodies it 
converts ("{{InputStream}} - Input stream containing document data", and "Typed 
bodies - {{File}}, {{byte[]}}, {{InputStream}}, ..."). 
{{DoclingProducer.getInputPath}} takes a String, a {{byte[]}} and a {{File}} 
(also inside a {{WrappedFile}}), and throws for any other body 
({{DoclingProducer.java:1695-1739}} on main). So a stream fails:

{code:yaml}
- route:
    from:
      uri: timer:stream
      parameters:
        repeatCount: 1
      steps:
        - setBody:
            constant: "# Hello"
        - convertBodyTo:
            type: java.io.InputStream
        - to: docling:CONVERT_TO_MARKDOWN
{code}

{noformat}
org.apache.camel.InvalidPayloadException: No body available of type: 
java.lang.String but has type: 
org.apache.camel.converter.stream.ByteArrayInputStreamCache
{noformat}

With {{convertBodyTo: byte[]}} instead, the body is taken. Checked on 
4.24.0-SNAPSHOT. It is so since the component was added (CAMEL-22433, 4.15.0).

A stream is the body of several components that a document comes from: 
platform-http with the Vert.x engine, the http producer for a response over 
8192 bytes, ftp and sftp with {{streamDownload}}, and the stream cache that 
stream caching makes of a stream. Each such route needs {{convertBodyTo: 
byte[]}} before docling.

*Proposed change*: write a stream to the temp file, as a {{byte[]}} is, within 
{{maxFileSize}}, and reset a stream cache after reading it.

_Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to