Details
Description
org.apache.james.dnsserver.DNSServer.getByName(String) does not always return the same result as java.net.InetAddress.getByName(address). Sometimes an exception is thrown when the standard implementation does not.
When passed a fully qualified domain name the results are the same. When passed a hostname or the special name 'localhost', a java.net.UnknownHostException is thrown by org.apache.james.dnsserver.DNSServer while java.net.InetAddress resolves the addresses correctly.
This is a critical issue as in v2.2.0 java.net.InetAddress.getByName() has pretty thoroughly been replaced by org.apache.james.dnsserver.DNSServer.getByName(), but in the noted circumstances it doesn't perform the same. Dependent code breaks.
Here are the contrasting examples...
// FAILS
String address = "localhost";
java.net.InetAddress inetAddress = org.apache.james.dnsserver.DNSServer.getByName(address);
return inetAddress;
// FAILS
String address = "hostname";
java.net.InetAddress inetAddress = org.apache.james.dnsserver.DNSServer.getByName(address);
return inetAddress;
// SUCCEEDS
String address = "localhost";
java.net.InetAddress inetAddress = java.net.InetAddress.getByName(address);
return inetAddress;
// SUCCEEDS
String address = "hostname";
java.net.InetAddress inetAddress = java.net.InetAddress.getByName(address);
return inetAddress;
Attachments
Issue Links
- is duplicated by
-
JAMES-795 CLONE -If FetchMail cannot parse Received header, it cannot process the message even with <remotereceivedheader reject="false".../>
- Resolved
-
JAMES-345 If FetchMail cannot parse Received header, it cannot process the message even with <remotereceivedheader reject="false".../>
- Closed