You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/06/28 07:21:14 UTC
[1/3] james-project git commit: JAMES-2069 Add unit test for missing
From on JMAP messages
Repository: james-project
Updated Branches:
refs/heads/master bf4dc20fb -> 793fec8a6
JAMES-2069 Add unit test for missing From on JMAP messages
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3562b88f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3562b88f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3562b88f
Branch: refs/heads/master
Commit: 3562b88fc27a08ccc3b54aee48caed4652ece8cb
Parents: bf4dc20
Author: benwa <bt...@linagora.com>
Authored: Tue Jun 27 09:36:41 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jun 27 09:36:41 2017 +0700
----------------------------------------------------------------------
.../james/jmap/model/MessageFactoryTest.java | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/3562b88f/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
index bd08b57..4e0141d 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
@@ -384,6 +384,26 @@ public class MessageFactoryTest {
}
@Test
+ public void messageWithoutFromShouldHaveEmptyFromField() throws Exception {
+ String headers = "To: user <us...@domain>\n"
+ + "Subject: test subject\n";
+ MetaDataWithContent testMail = MetaDataWithContent.builder()
+ .uid(MessageUid.of(2))
+ .flags(new Flags(Flag.SEEN))
+ .size(headers.length())
+ .internalDate(INTERNAL_DATE)
+ .content(new ByteArrayInputStream(headers.getBytes(Charsets.UTF_8)))
+ .attachments(ImmutableList.of())
+ .mailboxId(MAILBOX_ID)
+ .messageId(new TestMessageId.Factory().generate())
+ .build();
+
+ Message testee = messageFactory.fromMetaDataWithContent(testMail);
+
+ assertThat(testee.getFrom()).isEmpty();
+ }
+
+ @Test
public void dateFromHeaderShouldBeUsedIfPresent() throws Exception {
String headers = "From: user <userdomain>\n"
+ "To: user1 <user1domain>, user2 <user2domain>\n"
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[3/3] james-project git commit: JAMES-2076 setActive was running
concurrent operations in parallel
Posted by bt...@apache.org.
JAMES-2076 setActive was running concurrent operations in parallel
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/793fec8a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/793fec8a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/793fec8a
Branch: refs/heads/master
Commit: 793fec8a63598b1c0af14dfce799f01665533c16
Parents: 416e310
Author: benwa <bt...@linagora.com>
Authored: Wed Jun 28 10:27:39 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Jun 28 14:20:47 2017 +0700
----------------------------------------------------------------------
.../james/sieve/cassandra/CassandraSieveRepository.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/793fec8a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
index 95557e5..0490848 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
@@ -131,12 +131,12 @@ public class CassandraSieveRepository implements SieveRepository {
@Override
public void setActive(String user, String name) throws ScriptNotFoundException {
- CompletableFuture<Void> unactivateOldScriptFuture = unactivateOldScript(user);
- CompletableFuture<Boolean> activateNewScript = updateScriptActivation(user, name, true)
- .thenCompose(CompletableFutureUtil.composeIfTrue(
- () -> cassandraActiveScriptDAO.activate(user, name)));
+ CompletableFuture<Boolean> activateNewScript =
+ unactivateOldScript(user)
+ .thenCompose( any -> updateScriptActivation(user, name, true)
+ .thenCompose(CompletableFutureUtil.composeIfTrue(
+ () -> cassandraActiveScriptDAO.activate(user, name))));
- unactivateOldScriptFuture.join();
if (!activateNewScript.join()) {
throw new ScriptNotFoundException();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[2/3] james-project git commit: JAMES-2076 remove useless lightweight
condition
Posted by bt...@apache.org.
JAMES-2076 remove useless lightweight condition
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/416e3108
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/416e3108
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/416e3108
Branch: refs/heads/master
Commit: 416e31088b8abf262f07e87274db11c97ee13ce5
Parents: 3562b88
Author: benwa <bt...@linagora.com>
Authored: Wed Jun 28 09:19:15 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Jun 28 14:20:47 2017 +0700
----------------------------------------------------------------------
.../james/sieve/cassandra/CassandraSieveDAO.java | 3 ++-
.../james/sieve/cassandra/CassandraSieveQuotaDAO.java | 14 ++++++--------
.../sieve/cassandra/CassandraSieveRepository.java | 8 ++------
.../sieverepository/file/SieveFileRepository.java | 4 ++--
.../lib/AbstractSieveRepositoryTest.java | 9 +++++++--
5 files changed, 19 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/416e3108/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveDAO.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveDAO.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveDAO.java
index 7dab54a..f15dba5 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveDAO.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveDAO.java
@@ -49,6 +49,7 @@ import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.querybuilder.Select;
+import com.github.steveash.guavate.Guavate;
public class CassandraSieveDAO {
@@ -116,7 +117,7 @@ public class CassandraSieveDAO {
.map(row -> new ScriptSummary(
row.getString(SCRIPT_NAME),
row.getBool(IS_ACTIVE)))
- .collect(Collectors.toList()));
+ .collect(Guavate.toImmutableList()));
}
public CompletableFuture<Boolean> updateScriptActivation(String user, String scriptName, boolean active) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/416e3108/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAO.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAO.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAO.java
index 6dcbe6e..eaeb39e 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAO.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAO.java
@@ -89,14 +89,12 @@ public class CassandraSieveQuotaDAO {
deleteClusterQuotaStatement = session.prepare(
delete()
.from(CassandraSieveClusterQuotaTable.TABLE_NAME)
- .where(eq(CassandraSieveClusterQuotaTable.NAME, bindMarker(CassandraSieveClusterQuotaTable.NAME)))
- .ifExists());
+ .where(eq(CassandraSieveClusterQuotaTable.NAME, bindMarker(CassandraSieveClusterQuotaTable.NAME))));
deleteUserQuotaStatement = session.prepare(
delete()
.from(CassandraSieveQuotaTable.TABLE_NAME)
- .where(eq(CassandraSieveQuotaTable.USER_NAME, bindMarker(CassandraSieveQuotaTable.USER_NAME)))
- .ifExists());
+ .where(eq(CassandraSieveQuotaTable.USER_NAME, bindMarker(CassandraSieveQuotaTable.USER_NAME))));
}
public CompletableFuture<Long> spaceUsedBy(String user) {
@@ -128,8 +126,8 @@ public class CassandraSieveQuotaDAO {
.setString(CassandraSieveClusterQuotaTable.NAME, CassandraSieveClusterQuotaTable.DEFAULT_NAME));
}
- public CompletableFuture<Boolean> removeQuota() {
- return cassandraAsyncExecutor.executeReturnApplied(
+ public CompletableFuture<Void> removeQuota() {
+ return cassandraAsyncExecutor.executeVoid(
deleteClusterQuotaStatement.bind()
.setString(CassandraSieveClusterQuotaTable.NAME, CassandraSieveClusterQuotaTable.DEFAULT_NAME));
}
@@ -148,8 +146,8 @@ public class CassandraSieveQuotaDAO {
.setString(CassandraSieveQuotaTable.USER_NAME, user));
}
- public CompletableFuture<Boolean> removeQuota(String user) {
- return cassandraAsyncExecutor.executeReturnApplied(
+ public CompletableFuture<Void> removeQuota(String user) {
+ return cassandraAsyncExecutor.executeVoid(
deleteUserQuotaStatement.bind()
.setString(CassandraSieveQuotaTable.USER_NAME, user));
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/416e3108/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
index 1e3ad9f..95557e5 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
@@ -237,9 +237,7 @@ public class CassandraSieveRepository implements SieveRepository {
@Override
public void removeQuota() throws QuotaNotFoundException {
- if (!cassandraSieveQuotaDAO.removeQuota().join()) {
- throw new QuotaNotFoundException();
- }
+ cassandraSieveQuotaDAO.removeQuota().join();
}
@Override
@@ -266,9 +264,7 @@ public class CassandraSieveRepository implements SieveRepository {
@Override
public void removeQuota(String user) throws QuotaNotFoundException {
- if (!cassandraSieveQuotaDAO.removeQuota(user).join()) {
- throw new QuotaNotFoundException();
- }
+ cassandraSieveQuotaDAO.removeQuota(user).join();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/416e3108/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
index 221320e..60f5351 100644
--- a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
@@ -420,7 +420,7 @@ public class SieveFileRepository implements SieveRepository {
public synchronized void removeQuota() throws QuotaNotFoundException, StorageException {
File file = getQuotaFile();
if (!file.exists()) {
- throw new QuotaNotFoundException("No default quota");
+ return;
}
try {
FileUtils.forceDelete(file);
@@ -475,7 +475,7 @@ public class SieveFileRepository implements SieveRepository {
synchronized (lock) {
File file = getQuotaFile(user);
if (!file.exists()) {
- throw new QuotaNotFoundException("No quota for user: " + user);
+ return;
}
try {
FileUtils.forceDelete(file);
http://git-wip-us.apache.org/repos/asf/james-project/blob/416e3108/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java b/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java
index b07d3dc..b545160 100644
--- a/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java
@@ -303,12 +303,17 @@ public abstract class AbstractSieveRepositoryTest {
assertThat(sieveRepository.hasQuota(USER)).isTrue();
}
- @Test(expected = QuotaNotFoundException.class)
- public void removeQuotaShouldThrowIfRepositoryDoesNotHaveQuota() throws Exception {
+ @Test
+ public void removeQuotaShouldNotThrowIfRepositoryDoesNotHaveQuota() throws Exception {
sieveRepository.removeQuota();
}
@Test
+ public void removeUserQuotaShouldNotThrowWhenAbsent() throws Exception {
+ sieveRepository.removeQuota(USER);
+ }
+
+ @Test
public void removeQuotaShouldWorkOnRepositories() throws Exception {
sieveRepository.setQuota(DEFAULT_QUOTA);
sieveRepository.removeQuota();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org