Github user DaveBirdsall commented on a diff in the pull request:

    https://github.com/apache/trafodion/pull/1728#discussion_r226129024
  
    --- Diff: core/sql/sqludr/SqlUdrPredefLogReader.cpp ---
    @@ -530,37 +530,28 @@ void 
ReadCppEventsUDFInterface::processData(UDRInvocationInfo &info,
       {
         char* logrootdir = NULL;
         char* confrootdir = NULL;
    +
    +    logrootdir = getenv("TRAF_LOG");
    +    if (strlen(logrootdir) > 1000)
    +   throw UDRException(38001, "TRAF_HOME is longer than 1000 characters");
    +    std::string logDirName(logrootdir);
    +
         switch (logLocationIndex) 
         {
    -    case 0: // sqroot, for all logs other than dcs
    -      logrootdir = getenv("TRAF_HOME");
    -      if (strlen(logrootdir) > 1000)
    -   throw UDRException(38001, "TRAF_HOME is longer than 1000 characters");
    +    case 0: // no sub-directory
           break ;
         case 1:
    -      logrootdir = getenv("DCS_INSTALL_DIR");
    -      if (!logrootdir)
    -   throw UDRException(38001, "DCS_INSTALL_DIR not set");
    -      else if (strlen(logrootdir) > 1000)
    -   throw UDRException(38001, "DCS_INSTALL_DIR is longer than 1000 
characters");
    +      logDirName += "/dcs";
           break ;
         case 2:
    -      logrootdir = getenv("REST_INSTALL_DIR");
    -      if (!logrootdir)
    -   throw UDRException(38001, "REST_INSTALL_DIR not set");
    -      else if (strlen(logrootdir) > 1000)
    -   throw UDRException(38001, "REST_INSTALL_DIR is longer than 1000 
characters");
    -      break ;
    +      logDirName += "/rest";
    --- End diff --
    
    You need a "break;" statement after this one, otherwise you fall through to 
the default case and raise an exception. This is probably why test udr/TEST002 
failed in the regression test run.


---

Reply via email to