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

Claus Ibsen updated CAMEL-22359:
--------------------------------
    Priority: Minor  (was: Major)

> 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
>            Priority: Minor
>
> 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