Buggy code:
public abstract class ConfigSolr { protected static Logger log = LoggerFactory . getLogger ( ConfigSolr . class ) ; public static final String SOLR_XML_FILE = "solr.xml" ; public static ConfigSolr fromFile ( SolrResourceLoader loader , File configFile ) { } public static ConfigSolr fromString ( String xml ) { } public static ConfigSolr fromInputStream ( SolrResourceLoader loader , InputStream is ) { } public static ConfigSolr fromSolrHome ( SolrResourceLoader loader , String solrHome ) { } public static ConfigSolr fromConfig ( Config config , String originalXml ) { } public abstract CoresLocator getCoresLocator ( ) { } public PluginInfo getShardHandlerFactoryPluginInfo ( ) { } protected abstract String getShardHandlerFactoryConfigPath ( ) { } public String getZkHost ( ) { } public int getZkClientTimeout ( ) { } private static final int DEFAULT_ZK_CLIENT_TIMEOUT = 15000 ; private static final int DEFAULT_LEADER_VOTE_WAIT = 180000 ; private static final int DEFAULT_CORE_LOAD_THREADS = 3 ; protected static final String DEFAULT_CORE_ADMIN_PATH = "//admin//cores" ; public String getZkHostPort ( ) { } public String getZkHostContext ( ) { } public String getHost ( ) { } public int getLeaderVoteWait ( ) { } public boolean getGenericCoreNodeNames ( ) { } public int getDistributedConnectionTimeout ( ) { } public int getDistributedSocketTimeout ( ) { } public int getCoreLoadThreadCount ( ) { } public String getSharedLibDirectory ( ) { } public String getDefaultCoreName ( ) { } public abstract boolean isPersistent ( ) { } public String getAdminPath ( ) { } public String getCoreAdminHandlerClass ( ) { } public boolean hasSchemaCache ( ) { } public String getManagementPath ( ) { } public LogWatcherConfig getLogWatcherConfig ( ) { <START_BUG> return new LogWatcherConfig ( getBool ( ConfigSolr . CfgProp . SOLR_LOGGING_ENABLED , false ) , get ( ConfigSolr . CfgProp . SOLR_LOGGING_CLASS , null ) , get ( ConfigSolr . CfgProp . SOLR_LOGGING_WATCHER_THRESHOLD , null ) , getInt ( ConfigSolr . CfgProp . SOLR_LOGGING_WATCHER_SIZE , 50 ) ) ; <END_BUG> } public int getTransientCacheSize ( ) { } protected static enum CfgProp { SOLR_ADMINHANDLER , SOLR_CORELOADTHREADS , SOLR_COREROOTDIRECTORY , SOLR_DISTRIBUPDATECONNTIMEOUT , SOLR_DISTRIBUPDATESOTIMEOUT , SOLR_HOST , SOLR_HOSTCONTEXT , SOLR_HOSTPORT , SOLR_LEADERVOTEWAIT , SOLR_LOGGING_CLASS , SOLR_LOGGING_ENABLED , SOLR_LOGGING_WATCHER_SIZE , SOLR_LOGGING_WATCHER_THRESHOLD , SOLR_MANAGEMENTPATH , SOLR_SHAREDLIB , SOLR_SHARESCHEMA , SOLR_TRANSIENTCACHESIZE , SOLR_GENERICCORENODENAMES , SOLR_ZKCLIENTTIMEOUT , SOLR_ZKHOST , SOLR_PERSISTENT , SOLR_CORES_DEFAULT_CORE_NAME , SOLR_ADMINPATH ; } protected Config config ; protected Map < ConfigSolr . CfgProp , String > propMap = new HashMap < ConfigSolr . CfgProp , String > ( ) ; public ConfigSolr ( Config config ) { } protected ConfigSolr ( ) { } public Config getConfig ( ) { } public int getInt ( ConfigSolr . CfgProp prop , int def ) { } public boolean getBool ( ConfigSolr . CfgProp prop , boolean defValue ) { } public String get ( ConfigSolr . CfgProp prop , String def ) { } public Properties getSolrProperties ( String path ) { } protected Properties readProperties ( Node node ) throws XPathExpressionException { } }

Fix:
return new LogWatcherConfig ( getBool ( ConfigSolr . CfgProp . SOLR_LOGGING_ENABLED , true ) , get ( ConfigSolr . CfgProp . SOLR_LOGGING_CLASS , null ) , get ( ConfigSolr . CfgProp . SOLR_LOGGING_WATCHER_THRESHOLD , null ) , getInt ( ConfigSolr . CfgProp . SOLR_LOGGING_WATCHER_SIZE , 50 ) ) ;