Methods log in LoggingFilter.java use the subsequent eventLevel instead of current ----------------------------------------------------------------------------------
Key: DIRMINA-656 URL: https://issues.apache.org/jira/browse/DIRMINA-656 Project: MINA Issue Type: Bug Components: Filter Affects Versions: 2.0.0-M4 Environment: Windows-XP SP3 jdk1.6.0_11 Reporter: Aris Marsopoulos Priority: Minor The log methods in class LoggingFilter use the subsequent eventLevel instead of current For example: If the current eventLevel i= LogLevel.INFO the log method uses logger.warn to print the message (see source code for proof). private void log(LogLevel eventLevel, String message) { if (eventLevel == LogLevel.TRACE) { logger.trace(message); } else if (eventLevel.getLevel() > LogLevel.INFO.getLevel()) { logger.info(message); } else if (eventLevel.getLevel() > LogLevel.WARN.getLevel()) { logger.warn(message); } else if (eventLevel.getLevel() > LogLevel.ERROR.getLevel()) { logger.error(message); } } Remedy: Either replace the > operator by a >= operator in all three log methods or use a switch statement (see code below) /** * Log if the logger and the current event log level are compatible. We log * a message and an exception. * * @param eventLevel the event log level as requested by the user * @param message the message to log * @param cause the exception cause to log */ private void log(LogLevel eventLevel, String message, Throwable cause) { switch(eventLevel) { case TRACE: logger.trace(message, cause); break; case DEBUG: case INFO: logger.info(message, cause); break; case WARN: logger.warn(message, cause); break; case ERROR: logger.error(message, cause); break; } } /** * Log if the logger and the current event log level are compatible. We log * a formated message and its parameters. * * @param eventLevel the event log level as requested by the user * @param message the formated message to log * @param param the parameter injected into the message */ private void log(LogLevel eventLevel, String message, Object param) { switch(eventLevel) { case TRACE: logger.trace(message, param); break; case DEBUG: case INFO: logger.info(message, param); break; case WARN: logger.warn(message, param); break; case ERROR: logger.error(message, param); break; } } /** * Log if the logger and the current event log level are compatible. We log * a simple message. * * @param eventLevel the event log level as requested by the user * @param message the message to log */ private void log(LogLevel eventLevel, String message) { switch(eventLevel) { case TRACE: logger.trace(message); break; case DEBUG: case INFO: logger.info(message); break; case WARN: logger.warn(message); break; case ERROR: logger.error(message); break; } } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.