Author: peter_firmstone Date: Fri Nov 27 05:31:09 2015 New Revision: 1716793
URL: http://svn.apache.org/viewvc?rev=1716793&view=rev Log: Fix NPE that can occur during shutdown. Note this NPE didn't cause a test failure, however I don't like NPE being thrown unless we're expecting it. Also corrected synchronization comment. Modified: river/jtsk/skunk/qa-refactor-namespace/trunk/src/net/jini/discovery/AbstractLookupDiscovery.java Modified: river/jtsk/skunk/qa-refactor-namespace/trunk/src/net/jini/discovery/AbstractLookupDiscovery.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa-refactor-namespace/trunk/src/net/jini/discovery/AbstractLookupDiscovery.java?rev=1716793&r1=1716792&r2=1716793&view=diff ============================================================================== --- river/jtsk/skunk/qa-refactor-namespace/trunk/src/net/jini/discovery/AbstractLookupDiscovery.java (original) +++ river/jtsk/skunk/qa-refactor-namespace/trunk/src/net/jini/discovery/AbstractLookupDiscovery.java Fri Nov 27 05:31:09 2015 @@ -156,7 +156,10 @@ abstract class AbstractLookupDiscovery i /* WakeupManager to delay tasks. */ private final WakeupManager discoveryWakeupMgr; private final boolean isDefaultWakeupMgr; - /* Outstanding tickets - Access synchronized on pendingDiscoveries */ + /* Outstanding tickets - Access synchronized on + * UnicastDiscoveryTask instance, then on tickets. + * Access only synchronized on tickets from nukeThreads + */ private final List<Ticket> tickets; /** Thread that handles incoming multicast announcements. */ private final AnnouncementListener announceeThread; @@ -1010,7 +1013,7 @@ abstract class AbstractLookupDiscovery i // Since this is a valid announcement, update the // sequence number. AnnouncementInfo aInfo = regInfo.get(srvcID); - if (!regInfo.replace + if (aInfo != null && !regInfo.replace // Avoid null pointer exception ( srvcID, aInfo, new AnnouncementInfo(
