[ 
https://issues.apache.org/jira/browse/CAMEL-24611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrea Cosentino resolved CAMEL-24611.
--------------------------------------
    Resolution: Fixed

> camel-chatscript: multiple functional bugs (resetChat no-op, chatUserName 
> ignored, no socket timeout, non-String body NPE)
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24611
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24611
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-ai
>            Reporter: Andrea Cosentino
>            Assignee: Andrea Cosentino
>            Priority: Major
>             Fix For: 4.23.0
>
>
> An audit of camel-chatscript found several functional bugs:
> 1. ChatScriptBot.reset() has an empty body, so the resetChat endpoint option 
> does nothing - no :reset is ever sent to the ChatScript server. It is also 
> invoked once in the ChatScriptProducer constructor rather than per exchange, 
> so even the documented 'everytime' semantics is wrong.
> 2. The chatUserName endpoint option is never applied: ChatScriptEndpoint 
> always builds new ChatScriptBot(host, port, botName, "") with an empty user 
> name, and getChatUserName() is read nowhere. Since the ChatScript wire format 
> identifies per-user server state by user name, ?chatUserName=alice is 
> silently ignored and the conversation identity is wrong.
> 3. ChatScriptBot.doMessage opens new Socket(host, port) with no connect 
> timeout and never calls setSoTimeout, so in.readLine() blocks the route 
> thread indefinitely if the server accepts the connection but never replies.
> 4. ChatScriptProducer.buildMessage returns null for any non-String body 
> (byte[], InputStream, Map, null), causing a NullPointerException at process() 
> (inputMessage.setBotName(...)) instead of a clear error. (Separately, a plain 
> non-JSON String body reaches mapper.readValue and throws a parse exception, 
> so plain text is unsupported despite the 'json or the object itself' comment.)
> Two further items were noted: the first message body is dropped by the init 
> handshake (ChatScriptBot.init forces the body to null - needs a design 
> decision on whether that handshake is intended), and sendChat(String) calls 
> init(null) which would NPE (latent; not reachable through the producer, which 
> uses the ChatScriptMessage overload).
> _Reported by an automated functional audit._



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

Reply via email to