mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

boli
14.19.2007 200c0d8cc554abad9e062fdd25536446dae63865
Fixed a issue where changing log categories and/or severity levels resulted in exceptions. 

Fix for issue 2066
1 files modified
86 ■■■■■ changed files
opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java 86 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
@@ -224,13 +224,11 @@
        } else
        {
          String categoryName = overrideSeverity.substring(0, equalPos);
          categoryName = categoryName.replace("-", "_").toUpperCase();
          try
          {
          Category category = Category.valueOf(categoryName);
          if (category == null)
          {
            Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
            throw new ConfigException(msg);
          } else
          {
            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
              {
                try
                {
                Severity severity =
                    Severity.parseString(severityName);
                if (severity == null)
                  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,27 +333,35 @@
        } 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 =
              new StringTokenizer(overrideSeverity.substring(equalPos+1), ",");
            while (sevTokenizer.hasMoreElements())
            {
              String severityName = sevTokenizer.nextToken();
            severityName = severityName.replace("-", "_").toUpperCase();
              if(!severityName.equalsIgnoreCase(LOG_SEVERITY_ALL))
              {
              try
              {
                Severity severity =
                    Severity.parseString(severityName);
                if (severity == null)
              }
              catch(Exception e)
                {
                  Message msg = WARN_ERROR_LOGGER_INVALID_SEVERITY.get(
                          severityName);
                Message msg =
                    WARN_ERROR_LOGGER_INVALID_SEVERITY.get(severityName);
                  unacceptableReasons.add(msg);
                  return false;
                }
@@ -356,7 +370,6 @@
          }
        }
      }
    }
    return true;
  }
@@ -459,14 +472,11 @@
        } else
        {
          String categoryName = overrideSeverity.substring(0, equalPos);
          categoryName = categoryName.replace("-", "_").toUpperCase();
          try
          {
          Category category = Category.valueOf(categoryName);
          if (category == null)
          {
            Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
            resultCode = DirectoryServer.getServerErrorResultCode();
            messages.add(msg);
          } else
          {
            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
              {
                try
                {
                Severity severity =
                    Severity.parseString(severityName);
                if (severity == null)
                {
                  Message msg = WARN_ERROR_LOGGER_INVALID_SEVERITY.get(
                          severityName);
                  resultCode = DirectoryServer.getServerErrorResultCode();
                  messages.add(msg);
                } else
                {
                  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);
          }
        }
      }
    }