Source:
<code>public void refresh(HelixDataAccessor accessor) { LOG.info("START: BasicClusterDataCache.refresh() for cluster " + _clusterName); long startTime = System.currentTimeMillis(); if (_propertyDataChangedMap.get(HelixConstants.ChangeType.EXTERNAL_VIEW)) { _propertyDataChangedMap.put(HelixConstants.ChangeType.EXTERNAL_VIEW, Boolean.valueOf(false)); _externalViewCache.refresh(accessor); } if (_propertyDataChangedMap.get(HelixConstants.ChangeType.LIVE_INSTANCE)) { long start = System.currentTimeMillis(); _propertyDataChangedMap.put(HelixConstants.ChangeType.LIVE_INSTANCE, Boolean.valueOf(false)); _liveInstancePropertyCache.refresh(accessor); LOG.info("Reload LiveInstances: " + _liveInstancePropertyCache.getPropertyMap().keySet() + ". Takes " + (System.currentTimeMillis() - start) + " ms"); } if (_propertyDataChangedMap.get(HelixConstants.ChangeType.INSTANCE_CONFIG)) { long start = System.currentTimeMillis(); _propertyDataChangedMap.put(HelixConstants.ChangeType.INSTANCE_CONFIG, Boolean.valueOf(false)); <START> _liveInstancePropertyCache.refresh(accessor); <END> LOG.info("Reload InstanceConfig: " + _instanceConfigPropertyCache.getPropertyMap().keySet() + ". Takes " + (System.currentTimeMillis() - start) + " ms"); } long endTime = System.currentTimeMillis(); LOG.info( "END: BasicClusterDataCache.refresh() for cluster " + _clusterName + ", took " + (endTime - startTime) + " ms"); if (LOG.isDebugEnabled()) { LOG.debug("LiveInstances: {}", _liveInstancePropertyCache.getPropertyMap()); LOG.debug("ExternalViews: {}", _externalViewCache.getExternalViewMap().keySet()); LOG.debug("InstanceConfigs: {}", _instanceConfigPropertyCache.getPropertyMap()); } }</code><technical_language>Bug is here... This _instanceConfigPropertyCache</technical_language>

Target:
public void refresh(HelixDataAccessor accessor) { LOG.info("START: BasicClusterDataCache.refresh() for cluster " + _clusterName); long startTime = System.currentTimeMillis(); if (_propertyDataChangedMap.get(HelixConstants.ChangeType.EXTERNAL_VIEW)) { _propertyDataChangedMap.put(HelixConstants.ChangeType.EXTERNAL_VIEW, Boolean.valueOf(false)); _externalViewCache.refresh(accessor); } if (_propertyDataChangedMap.get(HelixConstants.ChangeType.LIVE_INSTANCE)) { long start = System.currentTimeMillis(); _propertyDataChangedMap.put(HelixConstants.ChangeType.LIVE_INSTANCE, Boolean.valueOf(false)); _liveInstancePropertyCache.refresh(accessor); LOG.info("Reload LiveInstances: " + _liveInstancePropertyCache.getPropertyMap().keySet() + ". Takes " + (System.currentTimeMillis() - start) + " ms"); } if (_propertyDataChangedMap.get(HelixConstants.ChangeType.INSTANCE_CONFIG)) { long start = System.currentTimeMillis(); _propertyDataChangedMap.put(HelixConstants.ChangeType.INSTANCE_CONFIG, Boolean.valueOf(false)); _instanceConfigPropertyCache.refresh(accessor); LOG.info("Reload InstanceConfig: " + _instanceConfigPropertyCache.getPropertyMap().keySet() + ". Takes " + (System.currentTimeMillis() - start) + " ms"); } long endTime = System.currentTimeMillis(); LOG.info( "END: BasicClusterDataCache.refresh() for cluster " + _clusterName + ", took " + (endTime - startTime) + " ms"); if (LOG.isDebugEnabled()) { LOG.debug("LiveInstances: {}", _liveInstancePropertyCache.getPropertyMap()); LOG.debug("ExternalViews: {}", _externalViewCache.getExternalViewMap().keySet()); LOG.debug("InstanceConfigs: {}", _instanceConfigPropertyCache.getPropertyMap()); } }