Buggy code:
public final class ZkController { private static Logger log = LoggerFactory . getLogger ( ZkController . class ) ; static final String NEWL = System . getProperty ( "line.separator" ) ; private static final Pattern URL_POST = Pattern . compile ( "https?:////(.*)" ) ; private static final Pattern URL_PREFIX = Pattern . compile ( "(https?:////).*" ) ; static final String SHARDS_ZKNODE = "//shards" ; public static final String CONFIGS_ZKNODE = "//configs" ; static final String COLLECTIONS_ZKNODE = "//collections" ; static final String NODES_ZKNODE = "//nodes" ; public static final String URL_PROP = "url" ; public static final String ROLE_PROP = "role" ; public static final String NODE_NAME = "node_name" ; final ShardsWatcher shardWatcher = new ShardsWatcher ( this ) ; private SolrZkClient zkClient ; private volatile CloudState cloudState ; private String zkServerAddress ; private String localHostPort ; private String localHostContext ; private String localHostName ; private String localHost ; private String hostName ; public ZkController ( String zkServerAddress , int zkClientTimeout , String localHost , String locaHostPort , String localHostContext ) throws IOException , InterruptedException , TimeoutException { } private void addZkShardsNode ( String shardId , String collection ) throws IOException { } public void close ( ) { } public boolean configFileExists ( String collection , String fileName ) throws InterruptedException , KeeperException { <START_BUG> Stat stat = zkClient . exists ( ( ( ( ZkController . CONFIGS_ZKNODE ) + "//" ) + fileName ) , null ) ; <END_BUG> return stat != null ; } public CloudState getCloudState ( ) { } private List < String > getCollectionNames ( ) throws InterruptedException , KeeperException { } public SolrConfig getConfig ( String zkConfigName , String solrConfigFileName , SolrResourceLoader resourceLoader ) throws IOException , InterruptedException , ParserConfigurationException , KeeperException , SAXException { } public byte [ ] getConfigFileData ( String zkConfigName , String fileName ) throws InterruptedException , KeeperException { } private String getHostAddress ( ) throws IOException { } public String getHostName ( ) { } public IndexSchema getSchema ( String zkConfigName , String schemaName , SolrConfig config , SolrResourceLoader resourceLoader ) throws InterruptedException , KeeperException { } SolrZkClient getZkClient ( ) { } public String getZkServerAddress ( ) { } private void init ( ) { } private void createEphemeralNode ( ) throws InterruptedException , KeeperException { } String getNodeName ( ) { } public synchronized void updateCloudState ( ) throws IOException , InterruptedException , KeeperException { } private Set < String > getLiveNodes ( ) throws InterruptedException , KeeperException { } public boolean pathExists ( String path ) throws InterruptedException , KeeperException { } public String readConfigName ( String collection ) throws InterruptedException , KeeperException { } private Map < String , ZkNodeProps > readShards ( String shardsZkPath ) throws IOException , InterruptedException , KeeperException { } public String register ( SolrCore core ) throws IOException , InterruptedException , KeeperException { } public void unregister ( SolrCore core , String zkNodePath ) { } public void uploadDirToCloud ( File dir , String zkPath ) throws IOException , InterruptedException , KeeperException { } void printLayoutToStdOut ( ) throws InterruptedException , KeeperException { } public void watchShards ( ) throws InterruptedException , KeeperException { } private void setUpCollectionsNode ( ) throws InterruptedException , KeeperException { } }

Fix:
Stat stat = zkClient . exists ( ( ( ( ( ( ZkController . CONFIGS_ZKNODE ) + "//" ) + collection ) + "//" ) + fileName ) , null ) ;