// ---
  public void testNonBlockingIdentityHashMapIteratorMultithreaded()
      throws InterruptedException, ExecutionException {
    TestKeyFeeder feeder = getTestKeyFeeder();
    final int itemCount = feeder.size();

    // validate results
    final NonBlockingIdentityHashMap<Long, TestKey> items = feeder.getMapMultithreaded();
    assertEquals("size()", itemCount, items.size());

    assertEquals("values().size()", itemCount, items.values().size());

    assertEquals("entrySet().size()", itemCount, items.entrySet().size());

    int iteratorCount = 0;
    for (TestKey m : items.values()) iteratorCount++;
    // sometimes a different result comes back the second time
    int iteratorCount2 = 0;
    for (Iterator<TestKey> it = items.values().iterator(); it.hasNext(); ) {
      iteratorCount2++;
      it.next();
    }
    assertEquals("iterator counts differ", iteratorCount, iteratorCount2);
    assertEquals("values().iterator() count", itemCount, iteratorCount);
  }
 // --- Customer Test Case 3 ------------------------------------------------
 private TestKeyFeeder getTestKeyFeeder() {
   final TestKeyFeeder feeder = new TestKeyFeeder();
   feeder.checkedPut(10401000001844L, 657829272, 680293140); // section 12
   feeder.checkedPut(10401000000614L, 657829272, 401326994); // section 12
   feeder.checkedPut(10400345749304L, 2095121916, -9852212); // section 12
   feeder.checkedPut(10401000002204L, 657829272, 14438460); // section 12
   feeder.checkedPut(10400345749234L, 1186831289, -894006017); // section 12
   feeder.checkedPut(10401000500234L, 969314784, -2112018706); // section 12
   feeder.checkedPut(10401000000284L, 657829272, 521425852); // section 12
   feeder.checkedPut(10401000002134L, 657829272, 208406306); // section 12
   feeder.checkedPut(10400345749254L, 2095121916, -341939818); // section 12
   feeder.checkedPut(10401000500384L, 969314784, -2136811544); // section 12
   feeder.checkedPut(10401000001944L, 657829272, 935194952); // section 12
   feeder.checkedPut(10400345749224L, 1186831289, -828214183); // section 12
   feeder.checkedPut(10400345749244L, 2095121916, -351234120); // section 12
   feeder.checkedPut(10400333128994L, 2095121916, -496909430); // section 12
   feeder.checkedPut(10400333197934L, 2095121916, 2147144926); // section 12
   feeder.checkedPut(10400333197944L, 2095121916, -2082366964); // section 12
   feeder.checkedPut(10400336947684L, 2095121916, -1404212288); // section 12
   feeder.checkedPut(10401000000594L, 657829272, 124369790); // section 12
   feeder.checkedPut(10400331896264L, 2095121916, -1028383492); // section 12
   feeder.checkedPut(10400332415044L, 2095121916, 1629436704); // section 12
   feeder.checkedPut(10400345749614L, 1186831289, 1027996827); // section 12
   feeder.checkedPut(10401000500424L, 969314784, -1871616544); // section 12
   feeder.checkedPut(10400336947694L, 2095121916, -1468802722); // section 12
   feeder.checkedPut(10410002672481L, 2154973, 1515288586); // section 12
   feeder.checkedPut(10410345749171L, 2154973, 2084791828); // section 12
   feeder.checkedPut(10400004960671L, 2154973, 1554754674); // section 12
   feeder.checkedPut(10410009983601L, 2154973, -2049707334); // section 12
   feeder.checkedPut(10410335811601L, 2154973, 1547385114); // section 12
   feeder.checkedPut(10410000005951L, 2154973, -1136117016); // section 12
   feeder.checkedPut(10400004938331L, 2154973, -1361373018); // section 12
   feeder.checkedPut(10410001490421L, 2154973, -818792874); // section 12
   feeder.checkedPut(10400001187131L, 2154973, 649763142); // section 12
   feeder.checkedPut(10410000409071L, 2154973, -614460616); // section 12
   feeder.checkedPut(10410333717391L, 2154973, 1343531416); // section 12
   feeder.checkedPut(10410336680071L, 2154973, -914544144); // section 12
   feeder.checkedPut(10410002068511L, 2154973, -746995576); // section 12
   feeder.checkedPut(10410336207851L, 2154973, 863146156); // section 12
   feeder.checkedPut(10410002365251L, 2154973, 542724164); // section 12
   feeder.checkedPut(10400335812581L, 2154973, 2146284796); // section 12
   feeder.checkedPut(10410337345361L, 2154973, -384625318); // section 12
   feeder.checkedPut(10410000409091L, 2154973, -528258556); // section 12
   return feeder;
 }