You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2022/12/09 09:39:19 UTC

[commons-jcs] 01/02: Write errors out to stderr if no log system can be found.

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

tv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jcs.git

commit f8661a894d4538c9cb7ab6eaf19075b3e50c6be0
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Fri Dec 9 10:17:46 2022 +0100

    Write errors out to stderr if no log system can be found.
---
 .../java/org/apache/commons/jcs3/log/LogManager.java     | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/log/LogManager.java b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/log/LogManager.java
index 49de7f3a..ac05b39e 100644
--- a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/log/LogManager.java
+++ b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/log/LogManager.java
@@ -61,6 +61,8 @@ public class LogManager
                 LogManager.logSystem = System.getProperty("jcs.logSystem",
                         LOGSYSTEM_JAVA_UTIL_LOGGING);
             }
+
+            // Store errors that may occur until log system is available
             List<ServiceConfigurationError> errors = new ArrayList<>();
             Iterator<LogFactory> itr = factories.iterator();
             LogFactory factory = null;
@@ -74,15 +76,18 @@ public class LogManager
                         factory = instance;
                         break;
                     }
-                } catch (ServiceConfigurationError e) {
+                }
+                catch (ServiceConfigurationError e)
+                {
                     errors.add(e);
                 }
             }
             if (factory != null)
             {
-                Log log = factory.getLog(LogFactoryHolder.class);
                 if (!errors.isEmpty())
                 {
+                    Log log = factory.getLog(LogFactoryHolder.class);
+
                     for (ServiceConfigurationError error : errors)
                     {
                         log.debug("Error loading LogFactory", error);
@@ -91,10 +96,9 @@ public class LogManager
                 }
                 return factory;
             }
-            if (!errors.isEmpty()) {
-                throw new RuntimeException("Could not find factory implementation for log subsystem " + logSystem,
-                        errors.get(0));
-            }
+
+            // No log system could be found --> report errors to stderr
+            errors.forEach(e -> System.err.println(e.getMessage()));
             throw new RuntimeException("Could not find factory implementation for log subsystem " + logSystem);
         }
     }