You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2017/01/29 20:35:59 UTC
svn commit: r1780852 - in /jmeter/trunk:
src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
Author: pmouawad
Date: Sun Jan 29 20:35:59 2017
New Revision: 1780852
URL: http://svn.apache.org/viewvc?rev=1780852&view=rev
Log:
Avoid NPE if init of resolver fails
Add Test cases
Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java?rev=1780852&r1=1780851&r2=1780852&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java Sun Jan 29 20:35:59 2017
@@ -61,34 +61,36 @@ public class DNSCacheManager extends Con
private static final Logger log = LoggingManager.getLoggerForClass();
- private transient SystemDefaultDnsResolver systemDefaultDnsResolver = null;
-
- private Map<String, InetAddress[]> cache = null;
-
- private transient Resolver resolver = null;
+ public static final boolean DEFAULT_CLEAR_CACHE_EACH_ITER = false;
//++ JMX tag values
- public static final String CLEAR_CACHE_EACH_ITER = "DNSCacheManager.clearEachIteration"; // $NON-NLS-1$
+ private static final String CLEAR_CACHE_EACH_ITER = "DNSCacheManager.clearEachIteration"; // $NON-NLS-1$
- public static final String SERVERS = "DNSCacheManager.servers"; // $NON-NLS-1$
+ private static final String SERVERS = "DNSCacheManager.servers"; // $NON-NLS-1$
- public static final String IS_CUSTOM_RESOLVER = "DNSCacheManager.isCustomResolver"; // $NON-NLS-1$
+ private static final String IS_CUSTOM_RESOLVER = "DNSCacheManager.isCustomResolver"; // $NON-NLS-1$
//-- JMX tag values
- public static final boolean DEFAULT_CLEAR_CACHE_EACH_ITER = false;
+ private static final boolean DEFAULT_IS_CUSTOM_RESOLVER = false;
- public static final String DEFAULT_SERVERS = ""; // $NON-NLS-1$
+ private final transient Cache lookupCache;
- public static final boolean DEFAULT_IS_CUSTOM_RESOLVER = false;
+ private final transient SystemDefaultDnsResolver systemDefaultDnsResolver;
- private final transient Cache lookupCache;
+ private final Map<String, InetAddress[]> cache;
+
+ transient Resolver resolver;
private transient int timeoutMs;
+ transient boolean initFailed;
+
// ensure that the initial DNSServers are copied to the per-thread instances
public DNSCacheManager() {
setProperty(new CollectionProperty(SERVERS, new ArrayList<String>()));
+ this.systemDefaultDnsResolver = new SystemDefaultDnsResolver();
+ this.cache = new LinkedHashMap<>();
//disabling cache
lookupCache = new Cache();
lookupCache.setMaxCache(0);
@@ -101,8 +103,14 @@ public class DNSCacheManager extends Con
@Override
public Object clone() {
DNSCacheManager clone = (DNSCacheManager) super.clone();
- clone.systemDefaultDnsResolver = new SystemDefaultDnsResolver();
- clone.cache = new LinkedHashMap<>();
+ clone.resolver = createResolver();
+ return clone;
+ }
+
+ /**
+ * @return {@link Resolver}
+ */
+ private Resolver createResolver() {
CollectionProperty dnsServers = getServers();
try {
String[] serverNames = new String[dnsServers.size()];
@@ -111,16 +119,20 @@ public class DNSCacheManager extends Con
serverNames[index] = jMeterProperty.getStringValue();
index++;
}
- clone.resolver = new ExtendedResolver(serverNames);
- log.debug("Using DNS Resolvers: "
- + Arrays.asList(((ExtendedResolver) clone.resolver)
- .getResolvers()));
+ ExtendedResolver resolver = new ExtendedResolver(serverNames);
+ if(log.isDebugEnabled()) {
+ log.debug("Using DNS Resolvers: "
+ + Arrays.asList(((ExtendedResolver) resolver)
+ .getResolvers()));
+ }
// resolvers will be chosen via round-robin
- ((ExtendedResolver) clone.resolver).setLoadBalance(true);
+ resolver.setLoadBalance(true);
+ return resolver;
} catch (UnknownHostException uhe) {
+ this.initFailed = true;
log.warn("Failed to create Extended resolver: " + uhe.getMessage());
+ return null;
}
- return clone;
}
/**
@@ -129,12 +141,19 @@ public class DNSCacheManager extends Con
*/
@Override
public InetAddress[] resolve(String host) throws UnknownHostException {
- if (cache.containsKey(host)) {
+ InetAddress[] result = cache.get(host);
+ // cache may contain
+ // A return value of null does not necessarily
+ // indicate that the map contains no mapping
+ // for the key; it's also possible that the map
+ // explicitly maps the key to null
+ // https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html
+ if (result != null || cache.containsKey(host)) {
if (log.isDebugEnabled()) {
log.debug("Cache hit thr#" + JMeterContextService.getContext().getThreadNum() + ": " + host + "=>"
- + Arrays.toString(cache.get(host)));
+ + Arrays.toString(result));
}
- return cache.get(host);
+ return result;
} else {
InetAddress[] addresses = requestLookup(host);
if (log.isDebugEnabled()) {
@@ -148,39 +167,60 @@ public class DNSCacheManager extends Con
/**
* Sends DNS request via system or custom DNS resolver
+ * @param host
+ * @return array of {@link InetAddress} or null if lookup did not return result
*/
private InetAddress[] requestLookup(String host) throws UnknownHostException {
InetAddress[] addresses = null;
- if (isCustomResolver() && ((ExtendedResolver) resolver).getResolvers().length > 0) {
- try {
- Lookup lookup = new Lookup(host, Type.A);
- lookup.setCache(lookupCache);
- if (timeoutMs > 0) {
- resolver.setTimeout(timeoutMs / 1000, timeoutMs % 1000);
- }
- lookup.setResolver(resolver);
- Record[] records = lookup.run();
- if (records == null || records.length == 0) {
- throw new UnknownHostException("Failed to resolve host name: " + host);
- }
- addresses = new InetAddress[records.length];
- for (int i = 0; i < records.length; i++) {
- addresses[i] = ((ARecord) records[i]).getAddress();
+ if (isCustomResolver()) {
+ if (getResolver() != null) {
+ if(getResolver().getResolvers().length > 0) {
+ try {
+ Lookup lookup = new Lookup(host, Type.A);
+ lookup.setCache(lookupCache);
+ if (timeoutMs > 0) {
+ resolver.setTimeout(timeoutMs / 1000, timeoutMs % 1000);
+ }
+ lookup.setResolver(resolver);
+ Record[] records = lookup.run();
+ if (records == null || records.length == 0) {
+ throw new UnknownHostException("Failed to resolve host name: " + host);
+ }
+ addresses = new InetAddress[records.length];
+ for (int i = 0; i < records.length; i++) {
+ addresses[i] = ((ARecord) records[i]).getAddress();
+ }
+ } catch (TextParseException tpe) {
+ log.debug("Failed to create Lookup object: " + tpe);
+ }
+ return addresses;
}
- } catch (TextParseException tpe) {
- log.debug("Failed to create Lookup object: " + tpe);
- }
- } else {
- addresses = systemDefaultDnsResolver.resolve(host);
- if (log.isDebugEnabled()) {
- log.debug("Cache miss: " + host + " Thread #" + JMeterContextService.getContext().getThreadNum()
- + ", resolved with system resolver into " + Arrays.toString(addresses));
+ } else {
+ throw new UnknownHostException("Could not resolve host:"+host
+ +", failed to initialize resolver"
+ + " or no resolver found");
}
}
+ addresses = systemDefaultDnsResolver.resolve(host);
+ if (log.isDebugEnabled()) {
+ log.debug("Cache miss: " + host + " Thread #" + JMeterContextService.getContext().getThreadNum()
+ + ", resolved with system resolver into " + Arrays.toString(addresses));
+ }
return addresses;
}
/**
+ * Tries to initialize resolver , otherwise sets initFailed to true
+ * @return ExtendedResolver if init succeeded or null otherwise
+ */
+ private ExtendedResolver getResolver() {
+ if(resolver == null && !initFailed) {
+ resolver = createResolver();
+ }
+ return (ExtendedResolver) resolver;
+ }
+
+ /**
* {@inheritDoc} Clean DNS cache if appropriate check-box was selected
*/
@Override
@@ -197,6 +237,9 @@ public class DNSCacheManager extends Con
public void clear() {
super.clear();
clearServers(); // ensure data is set up OK initially
+ this.cache.clear();
+ this.initFailed = false;
+ this.resolver = null;
}
/**
Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java?rev=1780852&r1=1780851&r2=1780852&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java Sun Jan 29 20:35:59 2017
@@ -20,18 +20,92 @@ package org.apache.jmeter.protocol.http.
import static org.junit.Assert.fail;
+import java.net.InetAddress;
import java.net.UnknownHostException;
import org.apache.jmeter.junit.JMeterTestCase;
+import org.junit.Assert;
import org.junit.Test;
+import org.xbill.DNS.ExtendedResolver;
public class TestDNSCacheManager extends JMeterTestCase {
-
+ private static final String INVALID_DNS_SERVER = "8.8.8.8.9"; //$NON-NLS-1$
+
+ private static final String VALID_DNS_SERVER = "8.8.8.8"; //$NON-NLS-1$
+ @Test
+ public void testWithCustomResolverAnd1WrongServer() throws UnknownHostException {
+ DNSCacheManager original = new DNSCacheManager();
+ original.addServer(INVALID_DNS_SERVER);
+ original.setCustomResolver(true);
+ original.setTimeoutMs(100);
+ try {
+ original.resolve("jmeter.apache.org");
+ fail("Should have failed as DNS server does not exist");
+ } catch (UnknownHostException e) {
+ Assert.assertNull(original.resolver);
+ Assert.assertTrue(original.initFailed);
+ }
+
+ try {
+ original.resolve("www.apache.org");
+ fail("Should have failed as DNS server does not exist");
+ // OK
+ } catch (UnknownHostException e) {
+ Assert.assertNull(original.resolver);
+ Assert.assertTrue(original.initFailed);
+ }
+ }
+
+ @Test
+ public void testWithCustomResolverAnd1Server() throws UnknownHostException {
+ DNSCacheManager original = new DNSCacheManager();
+ original.addServer(VALID_DNS_SERVER);
+ original.setCustomResolver(true);
+ original.setTimeoutMs(100);
+ try {
+ original.resolve("jmeter.apache.org");
+ Assert.assertNotNull(original.resolver);
+ Assert.assertTrue(((ExtendedResolver)original.resolver).getResolvers().length==1);
+ // OK
+ } catch (UnknownHostException e) {
+ fail("System DNS server should have been used");
+ }
+ }
+
+ @Test
+ public void testWithCustomResolverAndNoServer() throws UnknownHostException {
+ DNSCacheManager original = new DNSCacheManager();
+ original.setCustomResolver(true);
+ original.setTimeoutMs(100);
+ try {
+ // This will use Default System DNS resolver
+ original.resolve("jmeter.apache.org");
+ Assert.assertNotNull(original.resolver);
+ Assert.assertTrue(((ExtendedResolver)original.resolver).getResolvers().length==0);
+ } catch (UnknownHostException e) {
+ fail("Should have failed as no DNS server provided");
+ }
+ }
+
+ @Test
+ public void testWithCustomResolverAndInvalidNameserver() throws UnknownHostException {
+ DNSCacheManager original = new DNSCacheManager();
+ original.setCustomResolver(true);
+ original.addServer(INVALID_DNS_SERVER);
+ original.setTimeoutMs(100);
+ try {
+ original.resolve("jmeter.apache.org");
+ fail();
+ } catch (UnknownHostException e) {
+ // OK
+ }
+ }
+
@Test
public void testCloneWithCustomResolverAndInvalidNameserver() throws UnknownHostException {
DNSCacheManager original = new DNSCacheManager();
original.setCustomResolver(true);
- original.addServer("127.0.0.99");
+ original.addServer(INVALID_DNS_SERVER);
DNSCacheManager clone = (DNSCacheManager) original.clone();
clone.setTimeoutMs(100);
try {
@@ -41,5 +115,32 @@ public class TestDNSCacheManager extends
// OK
}
}
-
+
+ @Test
+ public void testResolveExistingHostWithSystemDefaultDnsServer() throws UnknownHostException {
+ DNSCacheManager original = new DNSCacheManager();
+ original.setCustomResolver(false);
+ try {
+ InetAddress[] result = original.resolve("www.example.org");
+ Assert.assertNotNull(result);
+ Assert.assertNull(original.resolver);
+ // IPv4 and IPv6
+ Assert.assertTrue(result.length == 2);
+ } catch (UnknownHostException e) {
+ Assert.fail("Should not have failed");
+ }
+ }
+
+ @Test
+ public void testResolveNonExistingHostWithSystemDefaultDnsServer() throws UnknownHostException {
+ DNSCacheManager original = new DNSCacheManager();
+ original.setCustomResolver(false);
+ try {
+ original.resolve("jmeterxxx.apache.org");
+ fail();
+ } catch (UnknownHostException e) {
+ Assert.assertNull(original.resolver);
+ // OK
+ }
+ }
}
Re: svn commit: r1780852 - in /jmeter/trunk:
src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
Posted by Milamber <mi...@apache.org>.
I've comment the test about ipv4/ipv6.
It's possible to have a notification to dev@j.a.o from Travis if a build
failed?
On 05/02/2017 17:44, Philippe Mouawad wrote:
> Hi,
> Maybe we should adapt the test to the ip typology.
>
> Regards
>
> On Sunday, February 5, 2017, Graham Russell <gr...@ham1.co.uk> wrote:
>
>> The same failure is happening on Travis as well:
>> https://travis-ci.org/apache/jmeter/jobs/198595940
>>
>> Graham
>> Graham
>>
>>
>> On 5 February 2017 at 16:40, Milamber <milamber@apache.org <javascript:;>>
>> wrote:
>>>
>>> On 29/01/2017 20:35, pmouawad@apache.org <javascript:;> wrote:
>>>> Modified:
>>>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/
>> control/TestDNSCacheManager.java
>>>> URL:http://svn.apache.org/viewvc/jmeter/trunk/test/src/
>> org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java?rev=
>> 1780852&r1=1780851&r2=1780852&view=diff
>>>> ============================================================
>> ==================
>>>> ---
>>>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/
>> control/TestDNSCacheManager.java
>>>> (original)
>>>> +++
>>>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/
>> control/TestDNSCacheManager.java
>>>> Sun Jan 29 20:35:59 2017
>>>> @@ -20,18 +20,92 @@ package org.apache.jmeter.protocol.http.
>>>> import static org.junit.Assert.fail;
>>>> [....]
>>>> -
>>>> +
>>>> + @Test
>>>> + public void testResolveExistingHostWithSystemDefaultDnsServer()
>>>> throws UnknownHostException {
>>>> + DNSCacheManager original = new DNSCacheManager();
>>>> + original.setCustomResolver(false);
>>>> + try {
>>>> + InetAddress[] result = original.resolve("www.example.org
>> ");
>>>> + Assert.assertNotNull(result);
>>>> + Assert.assertNull(original.resolver);
>>>> + // IPv4 and IPv6
>>>> + Assert.assertTrue(result.length == 2);
>>>
>>> When I execute test ant task, I have this error below.
>>> When I resolve the www.example.org, I've found only IPv4 address (my
>> network
>>> is only on ipv4).
>>>
>>> Have you the same error (on ipv4 installation)?
>>>
>>>
>>>
>>> [java] There was 1 failure:
>>> [java] 1)
>>> testResolveExistingHostWithSystemDefaultDnsServer(org.
>> apache.jmeter.protocol.http.control.TestDNSCacheManager)
>>> [java] java.lang.AssertionError
>>> [java] at org.junit.Assert.fail(Assert.java:86)
>>> [java] at org.junit.Assert.assertTrue(Assert.java:41)
>>> [java] at org.junit.Assert.assertTrue(Assert.java:52)
>>> [java] at
>>> org.apache.jmeter.protocol.http.control.TestDNSCacheManager.
>> testResolveExistingHostWithSystemDefaultDnsServer(
>> TestDNSCacheManager.java:154)
>>> [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method)
>>> [java] at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(
>> NativeMethodAccessorImpl.java:62)
>>> [java] at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> DelegatingMethodAccessorImpl.java:43)
>>> [java] at java.lang.reflect.Method.invoke(Method.java:498)
>>> [java] at
>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
>> FrameworkMethod.java:50)
>>> [java] at
>>> org.junit.internal.runners.model.ReflectiveCallable.run(
>> ReflectiveCallable.java:12)
>>> [java] at
>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(
>> FrameworkMethod.java:47)
>>> [java] at
>>> org.junit.internal.runners.statements.InvokeMethod.
>> evaluate(InvokeMethod.java:17)
>>> [java] at
>>> org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>>> [java] at
>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(
>> BlockJUnit4ClassRunner.java:78)
>>> [java] at
>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(
>> BlockJUnit4ClassRunner.java:57)
>>> [java] at
>>> org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>>> [java] at
>>> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>>> [java] at
>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>>> [java] at
>>> org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>>> [java] at
>>> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>>> [java] at org.junit.runners.ParentRunner.run(ParentRunner.
>> java:363)
>>> [java] at org.junit.runners.Suite.runChild(Suite.java:128)
>>> [java] at org.junit.runners.Suite.runChild(Suite.java:27)
>>> [java] at
>>> org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>>> [java] at
>>> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>>> [java] at
>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>>> [java] at
>>> org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>>> [java] at
>>> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>>> [java] at org.junit.runners.ParentRunner.run(ParentRunner.
>> java:363)
>>> [java] at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>>> [java] at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
>>> [java] at org.apache.jorphan.test.AllTests.main(AllTests.java:
>> 222)
>>> [java]
>>> [java] FAILURES!!!
>>> [java] Tests run: 2700, Failures: 1
>>> [java]
>>>
>>>
>>>
>>>
>>>> + } catch (UnknownHostException e) {
>>>> + Assert.fail("Should not have failed");
>>>> + }
>>>> + }
>>>> +
>>>> + @Test
>>>> + public void testResolveNonExistingHostWithSystemDefaultDnsServer()
>>>> throws UnknownHostException {
>>>> + DNSCacheManager original = new DNSCacheManager();
>>>> + original.setCustomResolver(false);
>>>> + try {
>>>> + original.resolve("jmeterxxx.apache.org");
>>>> + fail();
>>>> + } catch (UnknownHostException e) {
>>>> + Assert.assertNull(original.resolver);
>>>> + // OK
>>>> + }
>>>> + }
>>>> }
>>>>
>>>>
>>>>
>
Re: svn commit: r1780852 - in /jmeter/trunk: src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
Posted by Philippe Mouawad <ph...@gmail.com>.
Hi,
Maybe we should adapt the test to the ip typology.
Regards
On Sunday, February 5, 2017, Graham Russell <gr...@ham1.co.uk> wrote:
> The same failure is happening on Travis as well:
> https://travis-ci.org/apache/jmeter/jobs/198595940
>
> Graham
> Graham
>
>
> On 5 February 2017 at 16:40, Milamber <milamber@apache.org <javascript:;>>
> wrote:
> >
> >
> > On 29/01/2017 20:35, pmouawad@apache.org <javascript:;> wrote:
> >>
> >> Modified:
> >> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/
> control/TestDNSCacheManager.java
> >>
> >> URL:http://svn.apache.org/viewvc/jmeter/trunk/test/src/
> org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java?rev=
> 1780852&r1=1780851&r2=1780852&view=diff
> >>
> >> ============================================================
> ==================
> >> ---
> >> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/
> control/TestDNSCacheManager.java
> >> (original)
> >> +++
> >> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/
> control/TestDNSCacheManager.java
> >> Sun Jan 29 20:35:59 2017
> >> @@ -20,18 +20,92 @@ package org.apache.jmeter.protocol.http.
> >> import static org.junit.Assert.fail;
> >> [....]
> >> -
> >> +
> >> + @Test
> >> + public void testResolveExistingHostWithSystemDefaultDnsServer()
> >> throws UnknownHostException {
> >> + DNSCacheManager original = new DNSCacheManager();
> >> + original.setCustomResolver(false);
> >> + try {
> >> + InetAddress[] result = original.resolve("www.example.org
> ");
> >> + Assert.assertNotNull(result);
> >> + Assert.assertNull(original.resolver);
> >> + // IPv4 and IPv6
> >> + Assert.assertTrue(result.length == 2);
> >
> >
> > When I execute test ant task, I have this error below.
> > When I resolve the www.example.org, I've found only IPv4 address (my
> network
> > is only on ipv4).
> >
> > Have you the same error (on ipv4 installation)?
> >
> >
> >
> > [java] There was 1 failure:
> > [java] 1)
> > testResolveExistingHostWithSystemDefaultDnsServer(org.
> apache.jmeter.protocol.http.control.TestDNSCacheManager)
> > [java] java.lang.AssertionError
> > [java] at org.junit.Assert.fail(Assert.java:86)
> > [java] at org.junit.Assert.assertTrue(Assert.java:41)
> > [java] at org.junit.Assert.assertTrue(Assert.java:52)
> > [java] at
> > org.apache.jmeter.protocol.http.control.TestDNSCacheManager.
> testResolveExistingHostWithSystemDefaultDnsServer(
> TestDNSCacheManager.java:154)
> > [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > Method)
> > [java] at
> > sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)
> > [java] at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
> > [java] at java.lang.reflect.Method.invoke(Method.java:498)
> > [java] at
> > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
> FrameworkMethod.java:50)
> > [java] at
> > org.junit.internal.runners.model.ReflectiveCallable.run(
> ReflectiveCallable.java:12)
> > [java] at
> > org.junit.runners.model.FrameworkMethod.invokeExplosively(
> FrameworkMethod.java:47)
> > [java] at
> > org.junit.internal.runners.statements.InvokeMethod.
> evaluate(InvokeMethod.java:17)
> > [java] at
> > org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> > [java] at
> > org.junit.runners.BlockJUnit4ClassRunner.runChild(
> BlockJUnit4ClassRunner.java:78)
> > [java] at
> > org.junit.runners.BlockJUnit4ClassRunner.runChild(
> BlockJUnit4ClassRunner.java:57)
> > [java] at
> > org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> > [java] at
> > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> > [java] at
> > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> > [java] at
> > org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> > [java] at
> > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> > [java] at org.junit.runners.ParentRunner.run(ParentRunner.
> java:363)
> > [java] at org.junit.runners.Suite.runChild(Suite.java:128)
> > [java] at org.junit.runners.Suite.runChild(Suite.java:27)
> > [java] at
> > org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> > [java] at
> > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> > [java] at
> > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> > [java] at
> > org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> > [java] at
> > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> > [java] at org.junit.runners.ParentRunner.run(ParentRunner.
> java:363)
> > [java] at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> > [java] at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
> > [java] at org.apache.jorphan.test.AllTests.main(AllTests.java:
> 222)
> > [java]
> > [java] FAILURES!!!
> > [java] Tests run: 2700, Failures: 1
> > [java]
> >
> >
> >
> >
> >> + } catch (UnknownHostException e) {
> >> + Assert.fail("Should not have failed");
> >> + }
> >> + }
> >> +
> >> + @Test
> >> + public void testResolveNonExistingHostWithSystemDefaultDnsServer()
> >> throws UnknownHostException {
> >> + DNSCacheManager original = new DNSCacheManager();
> >> + original.setCustomResolver(false);
> >> + try {
> >> + original.resolve("jmeterxxx.apache.org");
> >> + fail();
> >> + } catch (UnknownHostException e) {
> >> + Assert.assertNull(original.resolver);
> >> + // OK
> >> + }
> >> + }
> >> }
> >>
> >>
> >>
> >
>
--
Cordialement.
Philippe Mouawad.
Re: svn commit: r1780852 - in /jmeter/trunk: src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
Posted by Graham Russell <gr...@ham1.co.uk>.
The same failure is happening on Travis as well:
https://travis-ci.org/apache/jmeter/jobs/198595940
Graham
Graham
On 5 February 2017 at 16:40, Milamber <mi...@apache.org> wrote:
>
>
> On 29/01/2017 20:35, pmouawad@apache.org wrote:
>>
>> Modified:
>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
>>
>> URL:http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java?rev=1780852&r1=1780851&r2=1780852&view=diff
>>
>> ==============================================================================
>> ---
>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
>> (original)
>> +++
>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
>> Sun Jan 29 20:35:59 2017
>> @@ -20,18 +20,92 @@ package org.apache.jmeter.protocol.http.
>> import static org.junit.Assert.fail;
>> [....]
>> -
>> +
>> + @Test
>> + public void testResolveExistingHostWithSystemDefaultDnsServer()
>> throws UnknownHostException {
>> + DNSCacheManager original = new DNSCacheManager();
>> + original.setCustomResolver(false);
>> + try {
>> + InetAddress[] result = original.resolve("www.example.org");
>> + Assert.assertNotNull(result);
>> + Assert.assertNull(original.resolver);
>> + // IPv4 and IPv6
>> + Assert.assertTrue(result.length == 2);
>
>
> When I execute test ant task, I have this error below.
> When I resolve the www.example.org, I've found only IPv4 address (my network
> is only on ipv4).
>
> Have you the same error (on ipv4 installation)?
>
>
>
> [java] There was 1 failure:
> [java] 1)
> testResolveExistingHostWithSystemDefaultDnsServer(org.apache.jmeter.protocol.http.control.TestDNSCacheManager)
> [java] java.lang.AssertionError
> [java] at org.junit.Assert.fail(Assert.java:86)
> [java] at org.junit.Assert.assertTrue(Assert.java:41)
> [java] at org.junit.Assert.assertTrue(Assert.java:52)
> [java] at
> org.apache.jmeter.protocol.http.control.TestDNSCacheManager.testResolveExistingHostWithSystemDefaultDnsServer(TestDNSCacheManager.java:154)
> [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> [java] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> [java] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> [java] at java.lang.reflect.Method.invoke(Method.java:498)
> [java] at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> [java] at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> [java] at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> [java] at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> [java] at
> org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> [java] at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> [java] at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> [java] at
> org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> [java] at
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> [java] at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> [java] at
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> [java] at
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> [java] at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> [java] at org.junit.runners.Suite.runChild(Suite.java:128)
> [java] at org.junit.runners.Suite.runChild(Suite.java:27)
> [java] at
> org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> [java] at
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> [java] at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> [java] at
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> [java] at
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> [java] at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> [java] at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> [java] at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
> [java] at org.apache.jorphan.test.AllTests.main(AllTests.java:222)
> [java]
> [java] FAILURES!!!
> [java] Tests run: 2700, Failures: 1
> [java]
>
>
>
>
>> + } catch (UnknownHostException e) {
>> + Assert.fail("Should not have failed");
>> + }
>> + }
>> +
>> + @Test
>> + public void testResolveNonExistingHostWithSystemDefaultDnsServer()
>> throws UnknownHostException {
>> + DNSCacheManager original = new DNSCacheManager();
>> + original.setCustomResolver(false);
>> + try {
>> + original.resolve("jmeterxxx.apache.org");
>> + fail();
>> + } catch (UnknownHostException e) {
>> + Assert.assertNull(original.resolver);
>> + // OK
>> + }
>> + }
>> }
>>
>>
>>
>
Re: svn commit: r1780852 - in /jmeter/trunk:
src/protocol/http/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
Posted by Milamber <mi...@apache.org>.
On 29/01/2017 20:35, pmouawad@apache.org wrote:
> Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java
> URL:http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java?rev=1780852&r1=1780851&r2=1780852&view=diff
> ==============================================================================
> --- jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java (original)
> +++ jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestDNSCacheManager.java Sun Jan 29 20:35:59 2017
> @@ -20,18 +20,92 @@ package org.apache.jmeter.protocol.http.
>
> import static org.junit.Assert.fail;
> [....]
> -
> +
> + @Test
> + public void testResolveExistingHostWithSystemDefaultDnsServer() throws UnknownHostException {
> + DNSCacheManager original = new DNSCacheManager();
> + original.setCustomResolver(false);
> + try {
> + InetAddress[] result = original.resolve("www.example.org");
> + Assert.assertNotNull(result);
> + Assert.assertNull(original.resolver);
> + // IPv4 and IPv6
> + Assert.assertTrue(result.length == 2);
When I execute test ant task, I have this error below.
When I resolve the www.example.org, I've found only IPv4 address (my
network is only on ipv4).
Have you the same error (on ipv4 installation)?
[java] There was 1 failure:
[java] 1)
testResolveExistingHostWithSystemDefaultDnsServer(org.apache.jmeter.protocol.http.control.TestDNSCacheManager)
[java] java.lang.AssertionError
[java] at org.junit.Assert.fail(Assert.java:86)
[java] at org.junit.Assert.assertTrue(Assert.java:41)
[java] at org.junit.Assert.assertTrue(Assert.java:52)
[java] at
org.apache.jmeter.protocol.http.control.TestDNSCacheManager.testResolveExistingHostWithSystemDefaultDnsServer(TestDNSCacheManager.java:154)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at java.lang.reflect.Method.invoke(Method.java:498)
[java] at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[java] at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[java] at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[java] at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[java] at
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
[java] at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
[java] at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
[java] at
org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
[java] at
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
[java] at
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
[java] at
org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
[java] at
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
[java] at
org.junit.runners.ParentRunner.run(ParentRunner.java:363)
[java] at org.junit.runners.Suite.runChild(Suite.java:128)
[java] at org.junit.runners.Suite.runChild(Suite.java:27)
[java] at
org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
[java] at
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
[java] at
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
[java] at
org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
[java] at
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
[java] at
org.junit.runners.ParentRunner.run(ParentRunner.java:363)
[java] at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
[java] at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
[java] at org.apache.jorphan.test.AllTests.main(AllTests.java:222)
[java]
[java] FAILURES!!!
[java] Tests run: 2700, Failures: 1
[java]
> + } catch (UnknownHostException e) {
> + Assert.fail("Should not have failed");
> + }
> + }
> +
> + @Test
> + public void testResolveNonExistingHostWithSystemDefaultDnsServer() throws UnknownHostException {
> + DNSCacheManager original = new DNSCacheManager();
> + original.setCustomResolver(false);
> + try {
> + original.resolve("jmeterxxx.apache.org");
> + fail();
> + } catch (UnknownHostException e) {
> + Assert.assertNull(original.resolver);
> + // OK
> + }
> + }
> }
>
>
>