You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/05/03 19:24:22 UTC

[maven] 01/03: Improve user-friendliness of error message

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 <ma...@infosupport.com>
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