Andrea Cosentino created CAMEL-24612:
----------------------------------------
Summary: camel-langchain4j-agent: content converter charset and
content-type handling issues
Key: CAMEL-24612
URL: https://issues.apache.org/jira/browse/CAMEL-24612
Project: Camel
Issue Type: Bug
Components: camel-langchain4j-agent
Reporter: Andrea Cosentino
Assignee: Andrea Cosentino
Fix For: 4.23.0
Three low-severity issues in LangChain4jAgentConverter:
1. Text content is decoded with the platform default charset:
TextContent.from(new String(data)) uses new String(byte[]) with the JVM default
charset. Combined with normalizeContentType() stripping the charset= parameter,
any declared charset is discarded and non-ASCII text is mis-decoded on a
non-UTF-8 locale. Fix: decode with StandardCharsets.UTF_8 (or the charset
parsed from the content type).
2. detectMimeType (the WrappedFile path) returns the raw header value without
normalization, unlike its byte[]/InputStream sibling detectMimeTypeFromHeaders
which wraps every return in normalizeContentType(...). A WrappedFile whose
content-type header carries parameters (e.g. application/pdf; charset=...)
fails the exact-match branch in createContent and is rejected as 'Unsupported
MIME type'; for image/* the charset leaks into Image.mimeType. Fix: normalize
the WrappedFile-path header values too.
3. The InputStream converter calls inputStream.readAllBytes() and never closes
the stream (a handle can leak for a source stream backing a file/spooled stream
cache). Fix: wrap in try-with-resources.
_Reported by an automated functional audit._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)