protected Record[] getRecords(Name name, int type) {
    Record[] result = null;
    ExecutorService executor = Executors.newSingleThreadExecutor();
    Future<Record[]> future = executor.submit(new LookupTask(name, type));
    try {
      result = future.get(1500, TimeUnit.MILLISECONDS);
      return result;
    } catch (InterruptedException | ExecutionException |
        TimeoutException | NullPointerException |
        ExceptionInInitializerError e) {
      LOG.warn("Failed to lookup: {} type: {}", name, Type.string(type), e);
      return result;
    } finally {
      executor.shutdown();
    }
  }
@Test(timeout=5000)
  public void testUpstreamFault() throws Exception {
    Name name = Name.fromString("19.0.17.172.in-addr.arpa.");
    Record[] recs = getRegistryDNS().getRecords(name, Type.CNAME);
    assertNull("Record is not null", recs);
  }