Uploaded image for project: 'Commons Collections'
  1. Commons Collections
  2. COLLECTIONS-3

NPE: map.LRUMap.reuseMapping(LRUMap.java:272)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 3.1
    • None
    • Map
    • 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

        1. ASF.LICENSE.NOT.GRANTED--commons-collections-3.2-LRUMap-debug.jar
          551 kB
          Stephen Colebourne
        2. ASF.LICENSE.NOT.GRANTED--LRUMap.java
          16 kB
          Stephen Colebourne
        3. ASF.LICENSE.NOT.GRANTED--SoakLRUMap.java
          3 kB
          Stephen Colebourne

        Issue Links

          Activity

            People

              Unassigned Unassigned
              otis@apache.org Otis Gospodnetic
              Votes:
              2 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: