docs: protected String getElapsedTime(boolean factor, long... testMilliseconds) {
          long elapsedTime;
          String info_days = BootstrapConstants.messages.getString("info.days");
          String info_hours = BootstrapConstants.messages.getString("info.hours");
          String info_minutes = BootstrapConstants.messages.getString("info.minutes");
          String info_seconds = BootstrapConstants.messages.getString("info.seconds");
  
          if (testMilliseconds.length == 0) {
              // Grab elapsed time in millis
              elapsedTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime);
          } else {
              // This mean this function is used in a test case where the value of elapsed time is
              // being assigned by the testing class
              elapsedTime = testMilliseconds[0];
          }
          StringBuilder timeString = new StringBuilder(30);
          if (elapsedTime <= 0) {
              long scndsN = 0L;
              timeString.append(MessageFormat.format(info_seconds, scndsN));
              return timeString.toString();
          }
  
          final double secMillis = 1000.0;
          final long minuteMillis = 60 * (long) secMillis;
          final long hourMillis = 60 * minuteMillis;
          final long dayMillis = 24 * hourMillis;
          long mod = elapsedTime;
  
          if (factor) {
              // Issue 01: Hard coding the "," or "." result in bad looking translated messages
              // Example in pl language: CWWKE0036I: Serwer defaultServer zosta? zatrzymany po 4 dn., 5 godz., 50 min., 34,231 sek..
              // we see 2 issues: 1- Some languages might not recognize the ","
              //                  2- When having to write an abbreviation at the end of the statement you will end up with 2 dots
              // Issue 02: Introducing the unit Milliseconds is a suggested solution to get more accurate numbers. Currently we are
              // losing some accuracy when we convert between 'Long' & 'Double'.
              long days = mod / dayMillis;
              mod = mod % dayMillis;
              if (days > 0)
                  timeString.append(MessageFormat.format(info_days, days)).append(", ");
              long hours = mod / hourMillis;
              mod = mod % hourMillis;
              if (hours > 0)
                  timeString.append(MessageFormat.format(info_hours, hours)).append(", ");
              long minutes = mod / minuteMillis;
              mod = mod % minuteMillis;
              if (minutes > 0)
                  timeString.append(MessageFormat.format(info_minutes, minutes)).append(", ");
              double seconds = mod / secMillis;
              mod = mod % (long) secMillis;
              if (mod == 0)
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.0f", seconds)));
              else if (Long.toString(mod).endsWith("00"))
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.1f", seconds)));
              else if (Long.toString(mod).endsWith("0"))
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.2f", seconds)));
              else
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.3f", seconds)));
              return timeString.toString();
          } else {
              double seconds = elapsedTime / secMillis;
              mod = elapsedTime % (long) secMillis;
              // mod is not correct for really large numbers so just drop the fraction
              if (seconds >= 0xFFFFFFFFL)
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.0f", seconds)));
              else if (mod == 0)
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.0f", seconds)));
              else if (Long.toString(mod).endsWith("00"))
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.1f", seconds)));
              else if (Long.toString(mod).endsWith("0"))
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.2f", seconds)));
              else
                  timeString.append(MessageFormat.format(info_seconds, String.format("%,.3f", seconds)));
              return timeString.toString();
          }
  
      }