[ https://issues.apache.org/jira/browse/CAMEL-19870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Isakkirajan Perumal updated CAMEL-19870: ---------------------------------------- Description: The third party AS2 server that we are calling is returning the MDN response in which the disposition field is like Ex: "Disposition: automatic-action/MDN-Sent-automatically; processed" As per the AS2 spec (https://www.ietf.org/rfc/rfc4130.txt) this field can be case insensitive, but camel as2 validates this field with case sensitive hence it fails. For reproducing the issue, please use the attached "DispositionNotificationContentUtilsTest.java" file. {code:java} Failed to parse entity content at org.apache.camel.support.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:531) at org.apache.camel.support.component.AbstractApiProducer.doInvokeMethod(AbstractApiProducer.java:122) at org.apache.camel.support.component.AbstractApiProducer$1.run(AbstractApiProducer.java:89) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:836) Caused by: org.apache.http.HttpException: Failed to parse entity content at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntity(EntityParser.java:365) at org.apache.camel.component.as2.api.entity.EntityParser.parseAS2MessageEntity(EntityParser.java:472) at org.apache.camel.component.as2.api.io.AS2BHttpClientConnection.receiveResponseEntity(AS2BHttpClientConnection.java:55) at org.apache.http.impl.conn.CPoolProxy.receiveResponseEntity(CPoolProxy.java:162) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) at org.apache.camel.component.as2.api.AS2ClientConnection.send(AS2ClientConnection.java:192) at org.apache.camel.component.as2.api.AS2ClientManager.send(AS2ClientManager.java:391) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.camel.support.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:523) ... 8 more Caused by: org.apache.http.ParseException: failed to parse text entity at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntityBody(EntityParser.java:602) at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntity(EntityParser.java:357) ... 20 more Caused by: org.apache.http.ParseException: failed to parse EDI entity at org.apache.camel.component.as2.api.entity.EntityParser.parseEntityBody(EntityParser.java:858) at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntityBody(EntityParser.java:548) ... 21 more Caused by: org.apache.http.ParseException: failed to parse text entity at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartReportEntityBody(EntityParser.java:710) at org.apache.camel.component.as2.api.entity.EntityParser.parseEntityBody(EntityParser.java:826) ... 22 more Caused by: org.apache.http.ParseException: failed to parse MDN entity at org.apache.camel.component.as2.api.entity.EntityParser.parseMessageDispositionNotificationEntityBody(EntityParser.java:777) at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartReportEntityBody(EntityParser.java:699) ... 23 more Caused by: org.apache.http.ParseException: Invalid 'Disposition' field: invalid disposition mode 'automatic-action/MDN-Sent-automatically' at org.apache.camel.component.as2.api.util.DispositionNotificationContentUtils.parseDispositionNotification(DispositionNotificationContentUtils.java:197) at org.apache.camel.component.as2.api.entity.EntityParser.parseMessageDispositionNotificationEntityBody(EntityParser.java:772) ... 24 more {code} was: The third party AS2 server that we are calling is returning the MDN response in which the disposition field is like Ex: "Disposition: automatic-action/MDN-Sent-automatically; processed" As per the AS2 spec ({color:#0747a6}[https://www.ietf.org/rfc/rfc4130.txt|https://www.ietf.org/rfc/rfc4130.txt+]{color}) this field can be case insensitive, but camel as2 validates this field with case sensitive hence it fails. For reproducing the issue, please use the attached "DispositionNotificationContentUtilsTest.java" file. {code:java} Failed to parse entity content at org.apache.camel.support.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:531) at org.apache.camel.support.component.AbstractApiProducer.doInvokeMethod(AbstractApiProducer.java:122) at org.apache.camel.support.component.AbstractApiProducer$1.run(AbstractApiProducer.java:89) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:836) Caused by: org.apache.http.HttpException: Failed to parse entity content at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntity(EntityParser.java:365) at org.apache.camel.component.as2.api.entity.EntityParser.parseAS2MessageEntity(EntityParser.java:472) at org.apache.camel.component.as2.api.io.AS2BHttpClientConnection.receiveResponseEntity(AS2BHttpClientConnection.java:55) at org.apache.http.impl.conn.CPoolProxy.receiveResponseEntity(CPoolProxy.java:162) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) at org.apache.camel.component.as2.api.AS2ClientConnection.send(AS2ClientConnection.java:192) at org.apache.camel.component.as2.api.AS2ClientManager.send(AS2ClientManager.java:391) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.camel.support.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:523) ... 8 more Caused by: org.apache.http.ParseException: failed to parse text entity at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntityBody(EntityParser.java:602) at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntity(EntityParser.java:357) ... 20 more Caused by: org.apache.http.ParseException: failed to parse EDI entity at org.apache.camel.component.as2.api.entity.EntityParser.parseEntityBody(EntityParser.java:858) at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntityBody(EntityParser.java:548) ... 21 more Caused by: org.apache.http.ParseException: failed to parse text entity at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartReportEntityBody(EntityParser.java:710) at org.apache.camel.component.as2.api.entity.EntityParser.parseEntityBody(EntityParser.java:826) ... 22 more Caused by: org.apache.http.ParseException: failed to parse MDN entity at org.apache.camel.component.as2.api.entity.EntityParser.parseMessageDispositionNotificationEntityBody(EntityParser.java:777) at org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartReportEntityBody(EntityParser.java:699) ... 23 more Caused by: org.apache.http.ParseException: Invalid 'Disposition' field: invalid disposition mode 'automatic-action/MDN-Sent-automatically' at org.apache.camel.component.as2.api.util.DispositionNotificationContentUtils.parseDispositionNotification(DispositionNotificationContentUtils.java:197) at org.apache.camel.component.as2.api.entity.EntityParser.parseMessageDispositionNotificationEntityBody(EntityParser.java:772) ... 24 more {code} > Camel AS2: Should accept MDN field name Disposition as case insensitive > ----------------------------------------------------------------------- > > Key: CAMEL-19870 > URL: https://issues.apache.org/jira/browse/CAMEL-19870 > Project: Camel > Issue Type: Bug > Components: camel-as2 > Affects Versions: 3.21.0 > Reporter: Isakkirajan Perumal > Priority: Major > Fix For: 3.21.1, 3.22.0, 4.0.1, 4.1.0 > > Attachments: DispositionNotificationContentUtilsTest.java, > as2-disposition-case-insensitive.png, invalid-disposition-mode-error-01.png, > invalid-disposition-mode-error-02.png > > > The third party AS2 server that we are calling is returning the MDN response > in which the disposition field is like > Ex: "Disposition: automatic-action/MDN-Sent-automatically; processed" > As per the AS2 spec (https://www.ietf.org/rfc/rfc4130.txt) this field can be > case insensitive, but camel as2 validates this field with case sensitive > hence it fails. > For reproducing the issue, please use the attached > "DispositionNotificationContentUtilsTest.java" file. > {code:java} > Failed to parse entity content > at > org.apache.camel.support.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:531) > at > org.apache.camel.support.component.AbstractApiProducer.doInvokeMethod(AbstractApiProducer.java:122) > at > org.apache.camel.support.component.AbstractApiProducer$1.run(AbstractApiProducer.java:89) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:836) > Caused by: org.apache.http.HttpException: Failed to parse entity content > at > org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntity(EntityParser.java:365) > at > org.apache.camel.component.as2.api.entity.EntityParser.parseAS2MessageEntity(EntityParser.java:472) > at > org.apache.camel.component.as2.api.io.AS2BHttpClientConnection.receiveResponseEntity(AS2BHttpClientConnection.java:55) > at > org.apache.http.impl.conn.CPoolProxy.receiveResponseEntity(CPoolProxy.java:162) > at > org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279) > at > org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) > at > org.apache.camel.component.as2.api.AS2ClientConnection.send(AS2ClientConnection.java:192) > at > org.apache.camel.component.as2.api.AS2ClientManager.send(AS2ClientManager.java:391) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > org.apache.camel.support.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:523) > ... 8 more > Caused by: org.apache.http.ParseException: failed to parse text entity > at > org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntityBody(EntityParser.java:602) > at > org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntity(EntityParser.java:357) > ... 20 more > Caused by: org.apache.http.ParseException: failed to parse EDI entity > at > org.apache.camel.component.as2.api.entity.EntityParser.parseEntityBody(EntityParser.java:858) > at > org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartSignedEntityBody(EntityParser.java:548) > ... 21 more > Caused by: org.apache.http.ParseException: failed to parse text entity > at > org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartReportEntityBody(EntityParser.java:710) > at > org.apache.camel.component.as2.api.entity.EntityParser.parseEntityBody(EntityParser.java:826) > ... 22 more > Caused by: org.apache.http.ParseException: failed to parse MDN entity > at > org.apache.camel.component.as2.api.entity.EntityParser.parseMessageDispositionNotificationEntityBody(EntityParser.java:777) > at > org.apache.camel.component.as2.api.entity.EntityParser.parseMultipartReportEntityBody(EntityParser.java:699) > ... 23 more > Caused by: org.apache.http.ParseException: Invalid 'Disposition' field: > invalid disposition mode 'automatic-action/MDN-Sent-automatically' > at > org.apache.camel.component.as2.api.util.DispositionNotificationContentUtils.parseDispositionNotification(DispositionNotificationContentUtils.java:197) > at > org.apache.camel.component.as2.api.entity.EntityParser.parseMessageDispositionNotificationEntityBody(EntityParser.java:772) > ... 24 more {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)