This is an automated email from the ASF dual-hosted git repository.

claude pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/creadur-rat.git


The following commit(s) were added to refs/heads/master by this push:
     new 17ea9c1d Quick fix for log breaking build (#399)
17ea9c1d is described below

commit 17ea9c1d849b9d7b383c0d9c42aa59e8c30241f6
Author: Claude Warren <[email protected]>
AuthorDate: Wed Nov 20 08:04:37 2024 +0000

    Quick fix for log breaking build (#399)
    
    * Added ability to set log level in all cases or lot that it is not 
supported
    
    * Added log cleanup to ReportTest
---
 .../src/it/java/org/apache/rat/ReportTest.java     | 29 +++++++++++++---------
 .../main/java/org/apache/rat/commandline/Arg.java  | 14 ++++-------
 .../src/main/java/org/apache/rat/utils/Log.java    | 15 +++++++++++
 .../apache/rat/test/AbstractOptionsProvider.java   |  2 +-
 4 files changed, 38 insertions(+), 22 deletions(-)

diff --git a/apache-rat-core/src/it/java/org/apache/rat/ReportTest.java 
b/apache-rat-core/src/it/java/org/apache/rat/ReportTest.java
index 45d74840..98098ff9 100644
--- a/apache-rat-core/src/it/java/org/apache/rat/ReportTest.java
+++ b/apache-rat-core/src/it/java/org/apache/rat/ReportTest.java
@@ -106,19 +106,24 @@ public class ReportTest {
 
         File logFile = new File(baseDir,"log.txt");
         FileLog fileLog = new FileLog(logFile);
-        DefaultLog.setInstance(fileLog);
-
-        argsList.add(new File(baseDir, "src").getAbsolutePath());
-
-        File expectedMsg = new File(baseDir, "expected-message.txt");
-        if (expectedMsg.exists()) {
-            String msg = IOUtils.readLines(new 
FileReader(expectedMsg)).get(0).trim();
-            assertThrows(RatDocumentAnalysisException.class, () -> 
Report.main(asArgs(argsList)),
-                    msg);
-        } else {
-            Report.main(asArgs(argsList));
+        Log oldLog = null;
+        try {
+            oldLog = DefaultLog.setInstance(fileLog);
+
+            argsList.add(new File(baseDir, "src").getAbsolutePath());
+
+            File expectedMsg = new File(baseDir, "expected-message.txt");
+            if (expectedMsg.exists()) {
+                String msg = IOUtils.readLines(new 
FileReader(expectedMsg)).get(0).trim();
+                assertThrows(RatDocumentAnalysisException.class, () -> 
Report.main(asArgs(argsList)),
+                        msg);
+            } else {
+                Report.main(asArgs(argsList));
+            }
+        } finally {
+            DefaultLog.setInstance(oldLog);
+            fileLog.close();
         }
-        fileLog.close();
 
         File groovyScript = new File(baseDir, "verify.groovy");
         if (groovyScript.exists()) {
diff --git a/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java 
b/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
index c176f037..d0591900 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
@@ -738,15 +738,11 @@ public enum Arg {
      */
     public static void processLogLevel(final CommandLine commandLine) {
         if (LOG_LEVEL.getSelected() != null) {
-            if (DefaultLog.getInstance() instanceof DefaultLog) {
-                DefaultLog dLog = (DefaultLog) DefaultLog.getInstance();
-                try {
-                    
dLog.setLevel(commandLine.getParsedOptionValue(LOG_LEVEL.getSelected()));
-                } catch (ParseException e) {
-                    logParseException(DefaultLog.getInstance(), e, 
LOG_LEVEL.getSelected(), commandLine, dLog.getLevel());
-                }
-            } else {
-                DefaultLog.getInstance().error("Log was not a DefaultLog 
instance. LogLevel not set.");
+            Log dLog = DefaultLog.getInstance();
+            try {
+                
dLog.setLevel(commandLine.getParsedOptionValue(LOG_LEVEL.getSelected()));
+            } catch (ParseException e) {
+                logParseException(DefaultLog.getInstance(), e, 
LOG_LEVEL.getSelected(), commandLine, dLog.getLevel());
             }
         }
     }
diff --git a/apache-rat-core/src/main/java/org/apache/rat/utils/Log.java 
b/apache-rat-core/src/main/java/org/apache/rat/utils/Log.java
index 5f00ddca..d12db3e6 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/utils/Log.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/utils/Log.java
@@ -51,6 +51,21 @@ public interface Log {
      */
     Level getLevel();
 
+    /**
+     * Sets the log level.
+     * Implementations may elect not to set the level dynamically.  However, 
if the option is supported
+     * this method should be overridden.
+     * @param level the level to set.
+     */
+    default void setLevel(Level level) {
+        warn(String.format("This logger does not support dynamically setting 
the log level.  Setting to %s ignored.", level));
+    }
+
+    /**
+     * Determines if the log level is enabled.
+     * @param level The level to check.
+     * @return true if the level will produce output in the log.
+     */
     default boolean isEnabled(Level level) {
         return getLevel().ordinal() <= level.ordinal();
     }
diff --git 
a/apache-rat-core/src/test/java/org/apache/rat/test/AbstractOptionsProvider.java
 
b/apache-rat-core/src/test/java/org/apache/rat/test/AbstractOptionsProvider.java
index bc27598e..772d3944 100644
--- 
a/apache-rat-core/src/test/java/org/apache/rat/test/AbstractOptionsProvider.java
+++ 
b/apache-rat-core/src/test/java/org/apache/rat/test/AbstractOptionsProvider.java
@@ -663,7 +663,7 @@ public abstract class AbstractOptionsProvider {
                 }
             }
         } finally {
-            ((DefaultLog) DefaultLog.getInstance()).setLevel(logLevel);
+            DefaultLog.getInstance().setLevel(logLevel);
         }
     }
 

Reply via email to