code: @Override
      public Future<Long> ping(final Long timestamp) {
          try {
              validateMiddleware();
          } catch (InvalidStateException e) {
              try {
                  waitForMiddleware(1, TimeUnit.SECONDS);
              } catch (InterruptedException ex) {
                  Thread.currentThread().interrupt();
                  FutureProcessor.canceledFuture(ex);
              } catch (CouldNotPerformException ex) {
                  // controller not ready to respond.
                  FutureProcessor.canceledFuture(ex);
              }
          }
          return FutureProcessor.completedFuture(timestamp);
      }
docs: {@inheritDoc }
  
  @param timestamp {@inheritDoc }
  
  @return {@inheritDoc }