Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Cannot Reproduce
-
3.1
-
None
-
None
-
Operating System: Linux
Platform: PC
-
32573
Description
I'm using Collections 3.1 and just found this NPE in my logs:
java.lang.NullPointerException
at
org.apache.commons.collections.map.LRUMap.reuseMapping(LRUMap.java:272)
at
org.apache.commons.collections.map.LRUMap.addMapping(LRUMap.java:243)
at
org.apache.commons.collections.map.AbstractHashedMap.put(AbstractHashedMap.java:282)
I instantiated LRUMap like this:
LRUMap map = new LRUMap(31);
And from there on, I use it like I'd use any Map, putting things into
it, and so on. Maybe I'm not using LRUMap correctly? My guess is
that this occurs when the Map is full, but I am not certain.
I am wrapping the LRUMap in my own Maps as follows, but I think they're
not the culprit:
LRUMap map = new LRUMap(31);
_userSessions = new ExpiringMap(map,
new TimerTTLReferenceHolder(1800000), // ttl=30min
300000); // purge frequency=5min
The only similar thing I found is COM-1288, but it looks like that was fixed
before 3.1 release.
I understand the value of a self-contained unit test that demonstrates this bug,
but it happens only occassionally on my production system, never during
development, so I can't really come up with it
My guess is that this is a boundary case, as line 272 is:
loop = loop.next;
So 'loop' is most likely null, and it's null because ... not sure, maybe that
hashIndex is wrong.
Attachments
Attachments
Issue Links
- relates to
-
COLLECTIONS-330 ConcurrentModificationException using remove from the keySet the LRUMap
- Closed