You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/08/21 10:41:33 UTC
[camel] branch main updated: CAMEL-16878: camel-mail - Fix class
cast exception in MailBinding.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 54dcd85 CAMEL-16878: camel-mail - Fix class cast exception in MailBinding.
54dcd85 is described below
commit 54dcd85e85e0175d7bff94909df0d0f0beb105da
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Aug 21 12:41:02 2021 +0200
CAMEL-16878: camel-mail - Fix class cast exception in MailBinding.
---
.../java/org/apache/camel/component/mail/MailBinding.java | 14 +++++++++++---
.../java/org/apache/camel/component/mail/MailEndpoint.java | 3 ++-
.../mail/MailBindingAttachmentEncodedFilenameTest.java | 2 +-
3 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
index f051399..936dd05 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
@@ -68,19 +68,27 @@ import org.slf4j.LoggerFactory;
public class MailBinding {
private static final Logger LOG = LoggerFactory.getLogger(MailBinding.class);
- private HeaderFilterStrategy headerFilterStrategy;
+ private final HeaderFilterStrategy headerFilterStrategy;
private ContentTypeResolver contentTypeResolver;
private boolean decodeFilename;
+ private boolean mapMailMessage = true;
public MailBinding() {
headerFilterStrategy = new DefaultHeaderFilterStrategy();
}
+ @Deprecated
public MailBinding(HeaderFilterStrategy headerFilterStrategy, ContentTypeResolver contentTypeResolver,
boolean decodeFilename) {
+ this(headerFilterStrategy, contentTypeResolver, decodeFilename, true);
+ }
+
+ public MailBinding(HeaderFilterStrategy headerFilterStrategy, ContentTypeResolver contentTypeResolver,
+ boolean decodeFilename, boolean mapMailMessage) {
this.headerFilterStrategy = headerFilterStrategy;
this.contentTypeResolver = contentTypeResolver;
this.decodeFilename = decodeFilename;
+ this.mapMailMessage = mapMailMessage;
}
public void populateMailMessage(MailEndpoint endpoint, MimeMessage mimeMessage, Exchange exchange)
@@ -255,7 +263,7 @@ public class MailBinding {
public Object extractBodyFromMail(Exchange exchange, MailMessage mailMessage) {
Message message = mailMessage.getMessage();
try {
- if (((MailEndpoint) exchange.getFromEndpoint()).getConfiguration().isMapMailMessage()) {
+ if (mapMailMessage) {
return message.getContent();
}
return message; // raw message
@@ -655,7 +663,7 @@ public class MailBinding {
}
}
// if the message is a multipart message, do not set the content type to multipart/*
- if (mailConfiguration.isMapMailMessage()) {
+ if (mapMailMessage) {
Object content = mailMessage.getContent();
if (content instanceof MimeMultipart) {
MimeMultipart multipart = (MimeMultipart) content;
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
index a630fa66..b2e1847 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
@@ -139,7 +139,8 @@ public class MailEndpoint extends ScheduledPollEndpoint implements HeaderFilterS
public MailBinding getBinding() {
if (binding == null) {
boolean decode = getConfiguration() != null && getConfiguration().isDecodeFilename();
- binding = new MailBinding(headerFilterStrategy, contentTypeResolver, decode);
+ boolean mapMailMessage = getConfiguration() != null && getConfiguration().isMapMailMessage();
+ binding = new MailBinding(headerFilterStrategy, contentTypeResolver, decode, mapMailMessage);
}
return binding;
}
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailBindingAttachmentEncodedFilenameTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailBindingAttachmentEncodedFilenameTest.java
index 3ebd6b6..857c5c4 100644
--- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailBindingAttachmentEncodedFilenameTest.java
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailBindingAttachmentEncodedFilenameTest.java
@@ -40,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class MailBindingAttachmentEncodedFilenameTest {
// enable file decoding
- private final MailBinding binding = new MailBinding(new DefaultHeaderFilterStrategy(), null, true);
+ private final MailBinding binding = new MailBinding(new DefaultHeaderFilterStrategy(), null, true, true);
@Test
public void shouldNotBreakEncodedFileNamesWithSlashes() throws Exception {