JAMES-2242 InMemory DNS resolver should throw UnknownHostException upon unknown 
entry


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

Branch: refs/heads/master
Commit: 2949c9185c6c2074addc85982ab8765377b6c93a
Parents: c772f5a
Author: benwa <[email protected]>
Authored: Wed Nov 29 15:16:35 2017 +0700
Committer: Antoine Duprat <[email protected]>
Committed: Mon Dec 4 14:42:15 2017 +0100

----------------------------------------------------------------------
 .../dnsservice/api/InMemoryDNSService.java      | 25 +++++++++++++++-----
 1 file changed, 19 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/2949c918/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
----------------------------------------------------------------------
diff --git 
a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
 
b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
index 0af0ac9..851ace7 100644
--- 
a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
+++ 
b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
@@ -27,6 +27,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.function.Predicate;
 
+import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Maps;
 import com.google.common.net.InetAddresses;
@@ -65,12 +66,20 @@ public class InMemoryDNSService implements DNSService {
 
     @Override
     public Collection<String> findMXRecords(String hostname) throws 
TemporaryResolutionException {
-        return hostRecord(hostname).mxRecords;
+        try {
+            return hostRecord(hostname).mxRecords;
+        } catch (UnknownHostException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public Collection<String> findTXTRecords(String hostname) {
-        return hostRecord(hostname).txtRecords;
+        try {
+            return hostRecord(hostname).txtRecords;
+        } catch (UnknownHostException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
@@ -83,7 +92,7 @@ public class InMemoryDNSService implements DNSService {
         return hostRecord(host).addresses.get(0);
     }
 
-    private DNSRecord hostRecord(final String host) {
+    private DNSRecord hostRecord(final String host) throws 
UnknownHostException {
         Predicate<? super Entry<String, DNSRecord>> filterByKey = entry -> 
entry.getKey().equals(host);
         return getDNSEntry(filterByKey).getValue();
     }
@@ -97,14 +106,18 @@ public class InMemoryDNSService implements DNSService {
     public String getHostName(final InetAddress addr) {
         Predicate<? super Entry<String, DNSRecord>> filterByValue = entry -> 
entry.getValue().contains(addr);
 
-        return getDNSEntry(filterByValue).getKey();
+        try {
+            return getDNSEntry(filterByValue).getKey();
+        } catch (UnknownHostException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
-    private Entry<String, DNSRecord> getDNSEntry(Predicate<? super 
Entry<String, DNSRecord>> filter) {
+    private Entry<String, DNSRecord> getDNSEntry(Predicate<? super 
Entry<String, DNSRecord>> filter) throws UnknownHostException {
         return records.entrySet().stream()
             .filter(filter)
             .findFirst()
-            .get();
+            .orElseThrow(() -> new UnknownHostException());
     }
 
     private static class DNSRecord {


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

Reply via email to