Hi Martijn, Martijn Hendriks wrote:
The second scenario that I sketched in my previous message is possible: I now can reproduce that values of an ItemStateReferenceMap are evicted by garbage collection during the iteration over that map in the LocalItemStateManager.dispose method (with Jackrabbit 1.2.1). On my local system, however, I did not get the ConcurrentModification exception (Java 5 doc says that it is thrown on a best-effort basis). Anyway, it seems like this is a possible cause of it.
thank you for sharing this info. another scenario I can think of is the following: - session A reads some items I - session B transiently removes items in I - session A logs out and starts to iterate over I in LocalItemStateManager (LISM) - session B saves changes and removed items are evicted from A's LISM - session A gets concurrent modification exception regards marcel