[
https://issues.apache.org/jira/browse/CAMEL-22359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-22359.
---------------------------------
Resolution: Fixed
Thanks for reporting and sending the PR
> camel-as2: MDN multipart/report parsing issue with no Content-Type
> ------------------------------------------------------------------
>
> Key: CAMEL-22359
> URL: https://issues.apache.org/jira/browse/CAMEL-22359
> Project: Camel
> Issue Type: Bug
> Components: camel-as2
> Affects Versions: 4.10.6
> Reporter: msorce
> Priority: Minor
> Fix For: 4.8.9, 4.10.7, 4.14.1, 4.15.0
>
>
> We use Camel AS2 component to receive and send edifact messages to partners.
> We're having issue parsing synchronous MDN from one of this partner.
> The global Content-Type of the MDN is multipart/report.
> The first part (the human readable text) has no Content-Type set.
> This leads to a parsing bug whereas RFC 2045 (Section 5.2) specify that the
> Content-Type can be omitted and should be considered as "text/plain;
> charset=us-ascii".
>
> {code:java}
> Caused by: org.apache.hc.core5.http.ParseException: failed to parse text
> entity
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntityBody(EntityParser.java:449)
> ~[classes/:na]
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntity(EntityParser.java:274)
> ~[classes/:na]
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseByMimeType(EntityParser.java:368)
> ~[classes/:na]
> at
> org.apache.camel.component.as2.api.entity.EntityParser.doParseAS2MessageEntity(EntityParser.java:357)
> ~[classes/:na]
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseAS2MessageEntity(EntityParser.java:336)
> ~[classes/:na]
> at
> org.apache.camel.component.as2.api.io.AS2BHttpClientConnection.receiveResponseEntity(AS2BHttpClientConnection.java:126)
> ~[camel-as2-api-4.10.6.jar:4.10.6]
> at
> org.apache.hc.core5.http.impl.io.HttpRequestExecutor.execute(HttpRequestExecutor.java:192)
> ~[httpcore5-5.2.5.jar:5.2.5]
> at
> org.apache.hc.core5.http.impl.io.HttpRequestExecutor.execute(HttpRequestExecutor.java:218)
> ~[httpcore5-5.2.5.jar:5.2.5]
> at
> org.apache.camel.component.as2.api.AS2ClientConnection$2.execute(AS2ClientConnection.java:205)
> ~[camel-as2-api-4.10.6.jar:4.10.6]
> at
> org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager$InternalConnectionEndpoint.execute(PoolingHttpClientConnectionManager.java:717)
> ~[httpclient5-5.3.1.jar:5.3.1]
> at
> org.apache.camel.component.as2.api.AS2ClientConnection.send(AS2ClientConnection.java:211)
> ~[camel-as2-api-4.10.6.jar:4.10.6]
> at
> org.apache.camel.component.as2.api.AS2ClientManager.sendRequest(AS2ClientManager.java:331)
> ~[camel-as2-api-4.10.6.jar:4.10.6]
> at
> org.apache.camel.component.as2.api.AS2ClientManager.send(AS2ClientManager.java:322)
> ~[camel-as2-api-4.10.6.jar:4.10.6]
> at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
> ~[na:na]
> at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
> at
> org.apache.camel.support.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:521)
> ~[camel-support-4.10.6.jar:4.10.6]
> ... 9 common frames omitted
> Caused by: org.apache.hc.core5.http.ParseException: failed to parse EDI entity
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseEntityBody(EntityParser.java:634)
> ~[classes/:na]
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntityBody(EntityParser.java:419)
> ~[classes/:na]
> ... 24 common frames omitted
> Caused by: org.apache.hc.core5.http.ParseException: failed to parse text
> entity
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartReportEntityBody(EntityParser.java:520)
> ~[classes/:na]
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseEntityBody(EntityParser.java:616)
> ~[classes/:na]
> ... 25 common frames omitted
> Caused by: org.apache.hc.core5.http.HttpException: Failed to find
> Content-Type header in EDI message body part
> at
> org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartReportEntityBody(EntityParser.java:486)
> ~[classes/:na]
> ... 26 common frames omitted
> {code}
>
> RFC 2045 (MIME Part One: Format of Internet Message Bodies), Section 5.2 –
> Content-Type Defaults
> [https://datatracker.ietf.org/doc/html/rfc2045#section-5.2]
>
> {code:java}
> Default [RFC 822](https://datatracker.ietf.org/doc/html/rfc822) messages
> without a MIME Content-Type header are taken by this protocol to be plain
> text in the US-ASCII character set, which can be explicitly specified as:
> Content-type: text/plain; charset=us-ascii {code}
> RFC 4130 (AS2) → RFC 3798 (MDN) → RFC 3462 (multipart/report) → RFC 2046
> (MIME media types) → RFC 2045 (MIME defaults, Section 5.2)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)