Description
I ran a long running membership update using the code in HEAD. This was long running because there were many thousands of effective memberships being created. The code calls FieldFinder.findById() many times. After the code ran for about 10 minutes (which is the cache time used by FieldFinder), I received the following exception.
Exception in thread "main" java.lang.NullPointerException
at edu.internet2.middleware.grouper.FieldFinder.findById(FieldFinder.java:121)
at edu.internet2.middleware.grouper.Membership.getField(Membership.java:867)
at edu.internet2.middleware.grouper.Membership.getListType(Membership.java:875)
at edu.internet2.middleware.grouper.log.EventLog._addEffs(EventLog.java:337)
at edu.internet2.middleware.grouper.log.EventLog.addEffMembers(EventLog.java:193)
at edu.internet2.middleware.grouper.Membership.internal_addImmediateMembership(Membership.java:529)
at edu.internet2.middleware.grouper.Group.addMember(Group.java:695)
at edu.internet2.middleware.grouper.Group.addMember(Group.java:637)
at edu.internet2.middleware.grouper.Group.addMember(Group.java:595)
at edu.internet2.middleware.grouper.Group.addMember(Group.java:555)
at Test.main(Test.java:38)
It appears that the cache may not be working as expected when an object expires....?