msorce created CAMEL-22359:
------------------------------
Summary: 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.x
Reporter: msorce
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
"If no Content-Type field is present, the default Content-Type is text/plain;
charset=us-ascii."
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)