code: public void executeAsyncTimed(final long timeout) {
  		if (executeThread != null) {
  			throw new IllegalStateException("use executable once per call");
  		}
  		final Executable nestedExec = this;
  		helperExecutable = new Executable() {
  			public Object execute() throws Throwable {
  				return nestedExec.executeTimed(timeout);
  			}
  		};
  		helperExecutable.executeAsync();
  	}
docs: Executes asynchronously.
  After <emph>timeout</emph> ms the abort method is invoked if the executable has not finished processing
  
  @param timeout timeout value in milliseconds