@Test
public void waitingFlagNotOriginallySetButAddedOnAwait() throws Exception {

    Window<Integer,String,String> window = new Window<Integer,String,String>(1);
    WindowFuture<Integer,String,String> requestFuture0 = window.offer(0, "Request0", 100);
    Assert.assertEquals(WindowFuture.CALLER_NOT_WAITING, requestFuture0.getCallerStateHint());
    Assert.assertFalse(requestFuture0.isCallerWaiting());
    // now the caller was mistaken that they weren't waiting, when they actually
    // start to wait, we'll set the waiting flag to true
    Assert.assertFalse(requestFuture0.await(30));
    
    Assert.assertEquals(WindowFuture.CALLER_WAITING_TIMEOUT, requestFuture0.getCallerStateHint());
}