You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2020/12/11 10:44:07 UTC
[james-project] 03/15: JAMES-2578 No longer rely on Java
serialization for JMS and ActiveMQ
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit f43a55845b83d10deba626dd1903130bc14383ac
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Dec 7 13:39:31 2020 +0700
JAMES-2578 No longer rely on Java serialization for JMS and ActiveMQ
---
.../apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java | 6 ------
.../org/apache/james/queue/activemq/ActiveMQMailQueueTest.java | 6 ------
.../java/org/apache/james/queue/jms/JMSCacheableMailQueue.java | 9 ++++++---
.../org/apache/james/queue/jms/JMSCacheableMailQueueTest.java | 6 ------
4 files changed, 6 insertions(+), 21 deletions(-)
diff --git a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
index 71a970e..1a68b89 100644
--- a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
+++ b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
@@ -98,12 +98,6 @@ public class ActiveMQMailQueueBlobTest implements DelayedManageableMailQueueCont
return mailQueue;
}
- @Override
- @Disabled("JAMES-3431 No support for Attribute collection Java serialization yet")
- public void queueShouldPreserveDsnParameters() {
-
- }
-
@Test
@Override
@Disabled("JAMES-2295 Disabled as test was dead-locking")
diff --git a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
index 8884645..b90c1a1 100644
--- a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
+++ b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
@@ -77,12 +77,6 @@ public class ActiveMQMailQueueTest implements DelayedManageableMailQueueContract
return mailQueue;
}
- @Override
- @Disabled("JAMES-3431 No support for Attribute collection Java serialization yet")
- public void queueShouldPreserveDsnParameters() {
-
- }
-
@Test
@Override
@Disabled("JAMES-2295 Disabled as test was dead-locking")
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSCacheableMailQueue.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSCacheableMailQueue.java
index 1084b17..e6950c7 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSCacheableMailQueue.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSCacheableMailQueue.java
@@ -20,7 +20,6 @@ package org.apache.james.queue.jms;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.Serializable;
import java.time.DateTimeException;
import java.time.Duration;
import java.time.Instant;
@@ -359,7 +358,7 @@ public class JMSCacheableMailQueue implements ManageableMailQueue, JMSSupport, M
props.putAll(mail.attributes()
.collect(Guavate.toImmutableMap(
attribute -> attribute.getName().asString(),
- attribute -> SerializationUtil.serialize((Serializable) attribute.getValue().value()))));
+ attribute -> attribute.getValue().toJson().toString())));
ImmutableList<String> attributeNames = mail.attributeNames()
.map(AttributeName::asString)
@@ -453,7 +452,11 @@ public class JMSCacheableMailQueue implements ManageableMailQueue, JMSSupport, M
Object attrValue = Throwing.function(message::getObjectProperty).apply(name);
if (attrValue instanceof String) {
- return Stream.of(new Attribute(AttributeName.of(name), AttributeValue.ofAny(SerializationUtil.deserialize((String) attrValue))));
+ try {
+ return Stream.of(new Attribute(AttributeName.of(name), AttributeValue.fromJsonString((String) attrValue)));
+ } catch (IOException e) {
+ LOGGER.error("Error deserializing mail attribute {} with value {}", name, attrValue, e);
+ }
} else {
LOGGER.error("Not supported mail attribute {} of type {} for mail {}", name, attrValue, name);
}
diff --git a/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java b/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java
index 6d75f0d..fb0e189 100644
--- a/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java
+++ b/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java
@@ -75,12 +75,6 @@ public class JMSCacheableMailQueueTest implements DelayedManageableMailQueueCont
}
@Override
- @Disabled("JAMES-3431 No support for Attribute collection Java serialization yet")
- public void queueShouldPreserveDsnParameters() {
-
- }
-
- @Override
@Disabled("JAMES-2295 Disabled as test was dead-locking")
public void dequeueCanBeChainedBeforeAck() {
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org