private synchronized void reloadFromUserControlledList() {
        File file = getConfigFile();
        if (!file.exists()) {
            if ((whitelistSignaturesFromUserControlledList != null && whitelistSignaturesFromUserControlledList.isEmpty()) ||
                    (blacklistSignaturesFromUserControlledList != null && blacklistSignaturesFromUserControlledList.isEmpty())) {
                LOGGER.log(Level.INFO, "No whitelist source file found at " + file + " so resetting user-controlled whitelist");
            }
            whitelistSignaturesFromUserControlledList = new HashSet<>();
            blacklistSignaturesFromUserControlledList = new HashSet<>();
            return;
        }

        LOGGER.log(Level.INFO, "Whitelist source file found at " + file);

        try {
            whitelistSignaturesFromUserControlledList = new HashSet<>();
            blacklistSignaturesFromUserControlledList = new HashSet<>();
    
            parseFileIntoList(
                    FileUtils.readLines(file, StandardCharsets.UTF_8),
                    whitelistSignaturesFromUserControlledList,
                    blacklistSignaturesFromUserControlledList
            );
        } catch (IOException e) {
            LOGGER.log(Level.WARNING, "Failed to load " + file.getAbsolutePath(), e);
        }
    }
private synchronized void reloadFromUserControlledList ( ) { File file = getConfigFile ( ) ; if ( ! file . exists ( ) ) { if ( ( whitelistSignaturesFromUserControlledList != null && whitelistSignaturesFromUserControlledList . isEmpty ( ) ) || ( blacklistSignaturesFromUserControlledList != null && blacklistSignaturesFromUserControlledList . isEmpty ( ) ) ) { LOGGER . log ( Level . INFO , "No whitelist source file found at " + file + " so resetting user-controlled whitelist" ) ; } whitelistSignaturesFromUserControlledList = new HashSet < > ( ) ; blacklistSignaturesFromUserControlledList = new HashSet < > ( ) ; return ; } LOGGER . log ( Level . INFO , "Whitelist source file found at " + file ) ; try { whitelistSignaturesFromUserControlledList = new HashSet < > ( ) ; blacklistSignaturesFromUserControlledList = new HashSet < > ( ) ; parseFileIntoList ( FileUtils . readLines ( file , StandardCharsets . UTF_8 ) , whitelistSignaturesFromUserControlledList , blacklistSignaturesFromUserControlledList ) ; } catch ( IOException e ) { LOGGER . log ( Level . WARNING , "Failed to load " + file . getAbsolutePath ( ) , e ) ; } }
Loads the data from the disk into this object.

<p>
The constructor of the derived class must call this method.
(If we do that in the base class, the derived class won't
get a chance to set default values.)