code: static boolean logWaiting(Logger log, String callerClass, String callerMethod, Object waitObj, long start, Object... extraArgs) {
  		long elapsed = (System.currentTimeMillis() - start)/1000;
  		boolean quiesced = false;
  		if (elapsed <= SIGNAL_LOG_QUIESCE_TIMEOUT_MINUTES * 60) {
  			ArrayList<Object> args = new ArrayList<Object>();
  			args.add(Thread.currentThread().getId());
  			args.add(elapsed);
  			args.add(waitObj);
  			if (extraArgs != null) {
  				args.addAll(Arrays.asList(extraArgs));
  			}
  			String msg = SignalUtil.formatMessage(Messages.SignalUtil_0, args.toArray(new Object[args.size()]));
  			log.logp(Level.WARNING, callerClass, callerMethod, msg.toString());
  		} else {
  			if (!quiesced) {
  				quiesced = true;
  				log.logp(Level.WARNING, callerClass, callerMethod,
  						MessageFormat.format(
  								Messages.SignalUtil_1,
  								new Object[]{Thread.currentThread().getId(), elapsed, waitObj}
  						)
  				);
  			}
  		}
  		return quiesced;
  	}
docs: Logs a warning message. If the elapsed time is greater than
  {@link #SIGNAL_LOG_QUIESCE_TIMEOUT_MINUTES} then the log message will indicate that wait
  logging for the thread is being quiesced, and a value of true is returned. Otherwise, false
  is returned.
  
  @param log
  the logger (for unit testing)
  @param callerClass
  the class name of the caller
  @param callerMethod
  the method name of the caller
  @param waitObj
  the object that is being waited on
  @param start
  the time that the wait began
  @param extraArgs
  caller provided extra arguments
  @return true if the elapsed time is greater than {@link #SIGNAL_LOG_QUIESCE_TIMEOUT_MINUTES}