From 200c0d8cc554abad9e062fdd25536446dae63865 Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Fri, 14 Sep 2007 17:19:24 +0000
Subject: [PATCH] Fixed a issue where changing log categories and/or severity levels resulted in exceptions. 

---
 opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java |  106 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 62 insertions(+), 44 deletions(-)

diff --git a/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java b/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
index f36dfc3..670e584 100644
--- a/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
+++ b/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
@@ -224,13 +224,11 @@
         } else
         {
           String categoryName = overrideSeverity.substring(0, equalPos);
-          Category category = Category.valueOf(categoryName);
-          if (category == null)
+          categoryName = categoryName.replace("-", "_").toUpperCase();
+          try
           {
-            Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
-            throw new ConfigException(msg);
-          } else
-          {
+            Category category = Category.valueOf(categoryName);
+
             HashSet<Severity> severities =
                 new HashSet<Severity>();
             StringTokenizer sevTokenizer =
@@ -238,6 +236,7 @@
             while (sevTokenizer.hasMoreElements())
             {
               String severityName = sevTokenizer.nextToken();
+              severityName = severityName.replace("-", "_").toUpperCase();
               if(severityName.equalsIgnoreCase(LOG_SEVERITY_ALL))
               {
                 severities.add(Severity.FATAL_ERROR);
@@ -250,21 +249,28 @@
               }
               else
               {
-                Severity severity =
-                    Severity.parseString(severityName);
-                if (severity == null)
+                try
+                {
+                  Severity severity =
+                      Severity.parseString(severityName);
+
+                  severities.add(severity);
+                }
+                catch(Exception e)
                 {
                   Message msg =
                       WARN_ERROR_LOGGER_INVALID_SEVERITY.get(severityName);
                   throw new ConfigException(msg);
-                } else
-                {
-                  severities.add(severity);
                 }
               }
             }
             definedSeverities.put(category, severities);
           }
+          catch(Exception e)
+          {
+            Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
+            throw new ConfigException(msg);
+          }
         }
       }
     }
@@ -327,30 +333,37 @@
         } else
         {
           String categoryName = overrideSeverity.substring(0, equalPos);
-          Category category = Category.valueOf(categoryName);
-          if (category == null)
+          Category category;
+          categoryName = categoryName.replace("-", "_").toUpperCase();
+          try
+          {
+            category = Category.valueOf(categoryName);
+          }
+          catch(Exception e)
           {
             Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
             unacceptableReasons.add(msg);
-            return false;
-          } else
-          {
-            StringTokenizer sevTokenizer =
+          }
+
+          StringTokenizer sevTokenizer =
               new StringTokenizer(overrideSeverity.substring(equalPos+1), ",");
-            while (sevTokenizer.hasMoreElements())
+          while (sevTokenizer.hasMoreElements())
+          {
+            String severityName = sevTokenizer.nextToken();
+            severityName = severityName.replace("-", "_").toUpperCase();
+            if(!severityName.equalsIgnoreCase(LOG_SEVERITY_ALL))
             {
-              String severityName = sevTokenizer.nextToken();
-              if(!severityName.equalsIgnoreCase(LOG_SEVERITY_ALL))
+              try
               {
                 Severity severity =
                     Severity.parseString(severityName);
-                if (severity == null)
-                {
-                  Message msg = WARN_ERROR_LOGGER_INVALID_SEVERITY.get(
-                          severityName);
-                  unacceptableReasons.add(msg);
-                  return false;
-                }
+              }
+              catch(Exception e)
+              {
+                Message msg =
+                    WARN_ERROR_LOGGER_INVALID_SEVERITY.get(severityName);
+                unacceptableReasons.add(msg);
+                return false;
               }
             }
           }
@@ -459,14 +472,11 @@
         } else
         {
           String categoryName = overrideSeverity.substring(0, equalPos);
-          Category category = Category.valueOf(categoryName);
-          if (category == null)
+          categoryName = categoryName.replace("-", "_").toUpperCase();
+          try
           {
-            Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
-            resultCode = DirectoryServer.getServerErrorResultCode();
-            messages.add(msg);
-          } else
-          {
+            Category category = Category.valueOf(categoryName);
+
             HashSet<Severity> severities =
                 new HashSet<Severity>();
             StringTokenizer sevTokenizer =
@@ -474,6 +484,7 @@
             while (sevTokenizer.hasMoreElements())
             {
               String severityName = sevTokenizer.nextToken();
+              severityName = severityName.replace("-", "_").toUpperCase();
               if(severityName.equalsIgnoreCase(LOG_SEVERITY_ALL))
               {
                 severities.add(Severity.FATAL_ERROR);
@@ -486,22 +497,29 @@
               }
               else
               {
-                Severity severity =
-                    Severity.parseString(severityName);
-                if (severity == null)
+                try
                 {
-                  Message msg = WARN_ERROR_LOGGER_INVALID_SEVERITY.get(
-                          severityName);
-                  resultCode = DirectoryServer.getServerErrorResultCode();
-                  messages.add(msg);
-                } else
-                {
+                  Severity severity =
+                      Severity.parseString(severityName);
+
                   severities.add(severity);
                 }
+                catch(Exception e)
+                {
+                  Message msg =
+                      WARN_ERROR_LOGGER_INVALID_SEVERITY.get(severityName);
+                  throw new ConfigException(msg);
+                }
               }
             }
             definedSeverities.put(category, severities);
           }
+          catch(Exception e)
+          {
+            Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
+            resultCode = DirectoryServer.getServerErrorResultCode();
+            messages.add(msg);
+          }
         }
       }
     }

--
Gitblit v1.10.0