Description
When a cache is created with eviction strategy set to FIFO it is actually treated as being LRU. This can be seen in org.infinispan.container.DefaultDataContainer.java.
Functional test for FIFO eviction can be found at https://svn.devel.redhat.com/repos/jboss-qa/edg/edg-functional-tests/trunk/ in the eviction-strategy module.
Basically what the test does is insert 3 values into the cache then retrieves the first value(to differentiate FIFO and LRU) and inserts 4th value which sets eviction in motion because of maxEntries=3.
I would expect the first entered value ("A") to be evicted instead it evicts the second ("B").
It uses the following cache configuration:
<local-cache name="fifo" start="EAGER" batching="false" indexing="NONE"> <locking isolation="REPEATABLE_READ" acquire-timeout="20000" concurrency-level="500" striping="false" /> <eviction strategy="FIFO" max-entries="3" interval="2000"/> </local-cache>