JAMES-2425 Avoid adding URL to Mail Repository Store when unknown protocol

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a1710240
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a1710240
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a1710240

Branch: refs/heads/master
Commit: a17102407973ba01c4b965f9e0bb49c58823b6f8
Parents: 6592d7c
Author: benwa <[email protected]>
Authored: Wed Aug 1 17:03:12 2018 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Fri Aug 3 07:57:22 2018 +0700

----------------------------------------------------------------------
 .../org/apache/james/utils/InMemoryMailRepositoryStore.java  | 2 +-
 .../apache/james/utils/InMemoryMailRepositoryStoreTest.java  | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a1710240/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
 
b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
index b6e1491..6bf875d 100644
--- 
a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
+++ 
b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
@@ -117,8 +117,8 @@ public class InMemoryMailRepositoryStore implements 
MailRepositoryStore, Configu
     }
 
     private MailRepository createNewMailRepository(MailRepositoryUrl 
mailRepositoryUrl) throws MailRepositoryStoreException {
-        urlStore.add(mailRepositoryUrl);
         MailRepository newMailRepository = 
retrieveMailRepository(mailRepositoryUrl);
+        urlStore.add(mailRepositoryUrl);
         newMailRepository = initializeNewRepository(newMailRepository, 
createRepositoryCombinedConfig(mailRepositoryUrl));
         MailRepository previousRepository = 
destinationToRepositoryAssociations.putIfAbsent(mailRepositoryUrl, 
newMailRepository);
         return Optional.ofNullable(previousRepository)

http://git-wip-us.apache.org/repos/asf/james-project/blob/a1710240/server/container/guice/guice-common/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/guice-common/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java
 
b/server/container/guice/guice-common/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java
index 44b91a9..04e6950 100644
--- 
a/server/container/guice/guice-common/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java
+++ 
b/server/container/guice/guice-common/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java
@@ -47,6 +47,7 @@ import com.google.common.collect.Sets;
 
 public class InMemoryMailRepositoryStoreTest {
     private static final MailRepositoryUrl FILE_REPO = 
MailRepositoryUrl.from("file://repo");
+    private static final MailRepositoryUrl UNKNOWN_PROTOCOL_REPO = 
MailRepositoryUrl.from("toto://repo");
     private static final MailRepositoryUrl MEMORY_REPO = 
MailRepositoryUrl.from("memory://repo");
     private static final MailRepositoryPath PATH_REPO = 
MailRepositoryPath.from("repo");
 
@@ -265,4 +266,11 @@ public class InMemoryMailRepositoryStoreTest {
         assertThat(actualSize).isEqualTo(threadCount);
     }
 
+    @Test
+    public void selectShouldNotAddUrlWhenProtocolDoNotExist() {
+        assertThatThrownBy(() -> 
repositoryStore.select(UNKNOWN_PROTOCOL_REPO));
+
+        assertThat(urlStore.listDistinct()).isEmpty();
+    }
+
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to