public void testGetDuringKeySetLoop() {
    for (int i = 0; i < 10; i++) dc.put(i, "value", -1, -1);

    int i = 0;
    for (Object key : dc.keySet()) {
      dc.peek(key); // calling get in this situations will result on corruption the iteration.
      i++;
    }

    assert i == 10 : "Expected the loop to run 10 times, only ran " + i;
  }
  public void testKeys() {
    dc.put("k1", "v1", 6000000, -1);
    dc.put("k2", "v2", -1, -1);
    dc.put("k3", "v3", -1, 6000000);
    dc.put("k4", "v4", 6000000, 6000000);

    Set expected = new HashSet();
    expected.add("k1");
    expected.add("k2");
    expected.add("k3");
    expected.add("k4");

    for (Object o : dc.keySet()) assert expected.remove(o);

    assert expected.isEmpty() : "Did not see keys " + expected + " in iterator!";
  }