Ehcache definido como eterno, mas esquece elementos de qualquer maneir

Estou tentando configurar o Ehcache (versão 2.5) para que nunca esqueça itens. Estou configurando programaticamente e não toquei em nenhum dos arquivos XML de configuração. Pela configuraçãoeternal paratrue é meu entendimento que as únicas circunstâncias sob as quais um item pode ser removido do cache seriam se eu ficar sem espaço em disco ou excedermaxBytesLocalDisk (ou se o aplicativo terminar). No entanto, este programa de teste não mostra esse comportamento:

public static void main(String[] args) {
  CacheManager cacheManager = CacheManager.create(); 
  Cache cache = new Cache(
    new CacheConfiguration().name("test")
    .overflowToDisk(true)
    .eternal(true)
    .maxBytesLocalHeap(1, MemoryUnit.MEGABYTES)
    .overflowToOffHeap(false)
    .maxBytesLocalDisk(100, MemoryUnit.GIGABYTES)
    .maxElementsOnDisk(0)
    .timeToIdleSeconds(0)
    .timeToLiveSeconds(0)
    .diskStorePath("E:\\Data\\Ehcache"));
  cacheManager.addCache(cache);
  for(int i = 0; i < 1000000; i++){
    cache.put(new Element("key_" + i, "value_" + i));
  }
  System.out.println(cache.getSize());      
}

Então, depois de adicionar 1 milhão de elementos ao meu cache, que eu disse para estourar em um disco que é grande o suficiente por ordens de magnitude, acabo com apenas 3276 itens no final. O que esta acontecendo aqui

questionAnswers(2)

yourAnswerToTheQuestion