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)

Reply via email to