This is an automated email from the ASF dual-hosted git repository. rfscholte pushed a commit to branch MNG-6891 in repository https://gitbox.apache.org/repos/asf/maven.git
commit 9c9187ae7cd553b52ef1fb095fa397184813a8c6 Author: Maarten Mulders <[email protected]> AuthorDate: Wed Apr 15 13:55:08 2020 +0200 Improve user-friendliness of error message --- .../java/org/apache/maven/logwrapper/LogLevelRecorder.java | 13 ++++++++++++- .../org/apache/maven/logwrapper/LogLevelRecorderTest.java | 12 ++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java index 9fa4b51..4ab3d9b 100644 --- a/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java +++ b/maven-slf4j-wrapper/src/main/java/org/apache/maven/logwrapper/LogLevelRecorder.java @@ -31,7 +31,18 @@ public class LogLevelRecorder public LogLevelRecorder( String threshold ) { - Level level = Level.valueOf( threshold ); + Level level; + try + { + level = Level.valueOf( threshold ); + } + catch ( IllegalArgumentException iae ) + { + String message = String.format( + "%s is not a valid log severity threshold. Valid severities are WARN, WARNING and ERROR.", + threshold ); + throw new IllegalArgumentException( message ); + } if ( level.toInt() < Level.WARN.toInt() ) { throw new IllegalArgumentException( "Logging severity thresholds can only be set to WARN or ERROR" ); diff --git a/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java b/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java index 69b2853..4ee9fe6 100644 --- a/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java +++ b/maven-slf4j-wrapper/src/test/java/org/apache/maven/logwrapper/LogLevelRecorderTest.java @@ -22,7 +22,10 @@ package org.apache.maven.logwrapper; import org.junit.Test; import org.slf4j.event.Level; +import static org.hamcrest.CoreMatchers.containsString; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; +import static org.hamcrest.MatcherAssert.assertThat; public class LogLevelRecorderTest { @@ -41,9 +44,14 @@ public class LogLevelRecorderTest new LogLevelRecorder( "INFO" ); } - @Test( expected = IllegalArgumentException.class ) + @Test public void failsOnUnknownLogLevel () { - new LogLevelRecorder( "SEVERE" ); + Throwable thrown = assertThrows( IllegalArgumentException.class, () -> new LogLevelRecorder( "SEVERE" ) ); + String message = thrown.getMessage(); + assertThat( message, containsString( "SEVERE is not a valid log severity threshold" ) ); + assertThat( message, containsString( "WARN" ) ); + assertThat( message, containsString( "WARNING" ) ); + assertThat( message, containsString( "ERROR" ) ); } } \ No newline at end of file
