code: @Override
  	public void doInvokeLaters() {
  		if (invokeLaterRunnables == null) {
  			return;
  		}
  
  		// The Runnables we are about to run may add their own invoke later
  		// runnables, so
  		// loop to make sure we process them all.
  		while (!invokeLaterRunnables.isEmpty()) {
  			List<UIContextImplRunnable> runnables = new ArrayList<>();
  			runnables.addAll(invokeLaterRunnables);
  			invokeLaterRunnables.clear();
  
  			for (UIContextImplRunnable run : runnables) {
  				UIContextHolder.pushContext(run.getContext());
  
  				try {
  					run.getRunnable().run();
  				} finally {
  					UIContextHolder.popContext();
  				}
  			}
  		}
  	}
docs: Runs the runnables that were added using {@link #invokeLater(Runnable)}.