package org.ethereum.validator;

import org.slf4j.Logger;

import java.util.LinkedList;
import java.util.List;

/**
 * Holds errors list to share between all rules
 *
 * @author Mikhail Kalinin
 * @since 02.09.2015
 */
public abstract class AbstractValidationRule implements ValidationRule {

    protected List<String> errors = new LinkedList<>();

    @Override
    public List<String> getErrors() {
        return errors;
    }

    public void logErrors(Logger logger) {
        if (logger.isErrorEnabled())
            for (String msg : errors) {
                logger.error("{} invalid: {}", getEntityClass().getSimpleName(), msg);
            }
    }

    abstract public Class getEntityClass();
}

package org.ethereum.validator;

import org.slf4j.Logger;

import java.util.LinkedList;
import java.util.List;

/**
 * Holds errors list to share between all rules
 *
 * @author Mikhail Kalinin
 * @since 02.09.2015
 */
public abstract class AbstractValidationRule implements ValidationRule {

    protected List<String> errors = new LinkedList<>();

    @Override
    public List<String> getErrors() {
        return errors;
    }

    public void logErrors(Logger logger) {
        if (logger.isErrorEnabled())
            for (String msg : errors) {
                logger.warn("{} invalid: {}", getEntityClass().getSimpleName(), msg);
            }
    }

    abstract public Class getEntityClass();
}

Reduce logger from ERROR to WARN for Validators - we can receive invalid blocks and this doesn't mean program malfunction
Reduce logger from ERROR to WARN for Validators - we can receive invalid blocks and this doesn't mean program malfunction
