public static void joinFor(Clock clock, Thread thread, Object timeout)
    throws InterruptedException, TimeoutException {
    """
	Joins on the thread but if end time is expired then throws an exception.
	
	@param thread the thread to join on
	@param timeout how long to join for (<code>null</code> or <= 0 means forever)
	@throws InterruptedException if the thread is interrupted while waiting
	@throws TimeoutException if the time has been reached
    """
    joinUntil(clock, thread, ClockUtils.toEndTime(timeout));
  }
public static void joinFor(Clock clock, Thread thread, Object timeout)
    throws InterruptedException, TimeoutException
  {
    joinUntil(clock, thread, ClockUtils.toEndTime(timeout));
  }
public static void joinFor ( Clock clock , Thread thread , Object timeout ) throws InterruptedException , TimeoutException { joinUntil ( clock , thread , ClockUtils . toEndTime ( timeout ) ) ; }
Joins on the thread but if end time is expired then throws an exception.

@param thread the thread to join on
@param timeout how long to join for (<code>null</code> or <= 0 means forever)
@throws InterruptedException if the thread is interrupted while waiting
@throws TimeoutException if the time has been reached
Joins on the thread but if end time is expired then throws an exception .