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]
