package de.idrinth.waraddonclient;

import de.idrinth.waraddonclient.service.Config;
import de.idrinth.waraddonclient.model.TrustManager;
import de.idrinth.waraddonclient.service.BaseLogger;
import de.idrinth.waraddonclient.service.FileLogger;
import de.idrinth.waraddonclient.service.FileSystem;
import de.idrinth.waraddonclient.service.MultiLogger;
import de.idrinth.waraddonclient.service.Request;
import java.io.IOException;
import java.net.URISyntaxException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import javax.xml.parsers.ParserConfigurationException;

abstract class BaseMain {
    private final MultiLogger logger = new MultiLogger();

    protected final void add(BaseLogger baseLogger) {
        logger.add(baseLogger);
    }

    protected abstract void main(MultiLogger logger, Config config, Request client, FileSystem file) throws FileSystem.FileSystemException, ParserConfigurationException, IOException;

    public void run() {
        try {
            Config config = new Config();
            add(new FileLogger(config.getLogFile()));
            Request client = new Request(new TrustManager(logger), logger, config);
            FileSystem file = new FileSystem(config);
            this.main(logger, config, client, file);
        } catch (ParserConfigurationException|FileSystem.FileSystemException|IOException|CertificateException|KeyManagementException|KeyStoreException|NoSuchAlgorithmException|URISyntaxException ex) {
            logger.error(ex);
        }
    }
}

package de.idrinth.waraddonclient;

import de.idrinth.waraddonclient.service.Config;
import de.idrinth.waraddonclient.model.TrustManager;
import de.idrinth.waraddonclient.service.BaseLogger;
import de.idrinth.waraddonclient.service.FileLogger;
import de.idrinth.waraddonclient.service.FileSystem;
import de.idrinth.waraddonclient.service.MultiLogger;
import de.idrinth.waraddonclient.service.Request;
import java.io.IOException;
import java.net.URISyntaxException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import javax.xml.parsers.ParserConfigurationException;

abstract class BaseMain {
    private final MultiLogger multiLogger = new MultiLogger();

    protected final void add(BaseLogger baseLogger) {
        multiLogger.add(baseLogger);
    }

    protected abstract void main(MultiLogger logger, Config config, Request client, FileSystem file) throws FileSystem.FileSystemException, ParserConfigurationException, IOException;

    public void run() {
        try {
            Config config = new Config();
            add(new FileLogger(config.getLogFile()));
            Request client = new Request(new TrustManager(multiLogger), multiLogger, config);
            FileSystem file = new FileSystem(config);
            this.main(multiLogger, config, client, file);
        } catch (ParserConfigurationException|FileSystem.FileSystemException|IOException|CertificateException|KeyManagementException|KeyStoreException|NoSuchAlgorithmException|URISyntaxException ex) {
            multiLogger.error(ex);
        }
    }
}

fix last codacy complaint