/** * Returns the protocol descriptors map, keyed by node ID. Creates and stores the map if it * doesn't already exist. This method must be run within a transaction. */ private static Map<Long, Set<ProtocolDescriptor>> getProtocolDescriptorsMap() { DataService dataService = getDataService(); Map<Long, Set<ProtocolDescriptor>> protocolDescriptorsMap; try { protocolDescriptorsMap = Objects.uncheckedCast(dataService.getServiceBinding(PROTOCOL_DESCRIPTORS_MAP_KEY)); } catch (NameNotBoundException e) { protocolDescriptorsMap = new ScalableHashMap<Long, Set<ProtocolDescriptor>>(); dataService.setServiceBinding(PROTOCOL_DESCRIPTORS_MAP_KEY, protocolDescriptorsMap); } return protocolDescriptorsMap; }