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

Claus Ibsen resolved CAMEL-26433.
---------------------------------
    Resolution: Fixed

Fixed by https://github.com/apache/camel/pull/29043 (merged to main as 
394deda18cf817cafe5472cb2dd99428088df612).

_Claude Code on behalf of Claus Ibsen (davsclaus)_

> camel-hl7 - add a size limit to the HL7 MLLP MINA codec (HL7MLLPCodec / 
> HL7MLLPDecoder)
> ---------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26433
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26433
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-hl7, camel-mina
>            Reporter: shashank
>            Assignee: shashank
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Follow-up of CAMEL-26090 (apache/camel#28758), mentioned in its review.
> CAMEL-26090 adds {{maxFrameLength}} to the Netty decoder 
> ({{HL7MLLPNettyDecoderFactory}}): a message longer than the limit, or more 
> bytes than the limit without the end bytes, fails with a 
> {{TooLongFrameException}} and the connection is closed. The MINA codec 
> ({{HL7MLLPCodec}}, used as {{mina:tcp://...?codec=#hl7codec}}) has no limit: 
> {{HL7MLLPDecoder}} is a MINA {{CumulativeProtocolDecoder}}, which keeps the 
> bytes of a session in its buffer until it sees both end bytes. A client that 
> sends data without the end bytes makes the buffer of its session grow without 
> bound.
> *Proposal*
> * A {{maxFrameLength}} option on {{HL7MLLPCodec}} (stored in 
> {{HL7MLLPConfig}}, which already has it since CAMEL-26090), default 
> {{Integer.MAX_VALUE}} so existing routes behave the same. When the bytes of 
> the current message (from the start byte, or from the start of the data, up 
> to the end bytes) exceed it, {{HL7MLLPDecoder.doDecode}} discards them up to 
> the next end bytes and throws a {{ProtocolDecoderException}} (MINA then calls 
> the handler's {{exceptionCaught}}, where the camel-mina consumer closes the 
> session with a WARN).
> * The same semantics and wording as the Netty option, so the 
> {{hl7-dataformat.adoc}} options table can describe one {{maxFrameLength}} for 
> both codecs.
> * Tests at the decoder level and with a real {{mina:tcp}} route, as for the 
> Netty decoder.
> _Filed with Claude Code on behalf of allthingssecurity._



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to