[jira] Commented: (COLLECTIONS-3) NPE: map.LRUMap.reuseMapping(LRUMap.java:272)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] Commented: (COLLECTIONS-3) NPE: map.LRUMap.reuseMapping(LRUMap.java:272)

ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/COLLECTIONS-3?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12584415#action_12584415 ]

Henri Yandell commented on COLLECTIONS-3:

svn ci -m "Adding a state check as per COLLECTIONS-3. I got an NPE when running through tests without synchronization" src

Sending        src/java/org/apache/commons/collections/map/LRUMap.java
Transmitting file data .
Committed revision 643755.

> NPE: map.LRUMap.reuseMapping(LRUMap.java:272)
> ---------------------------------------------
>                 Key: COLLECTIONS-3
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-3
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: Map
>    Affects Versions: 3.1
>         Environment: Operating System: Linux
> Platform: PC
>            Reporter: Otis Gospodnetic
>             Fix For: 3.3
>         Attachments: commons-collections-3.2-LRUMap-debug.jar, LRUMap.java, SoakLRUMap.java
> 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.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.