code: @Override
    public OperationStatus getOperationStatus(OperationHandle opHandle)
        throws HiveSQLException {
      Operation operation = sessionManager.getOperationManager().getOperation(opHandle);
      /**
       * If this is a background operation run asynchronously,
       * we block for a configured duration, before we return
       * (duration: HIVE_SERVER2_LONG_POLLING_TIMEOUT).
       * However, if the background operation is complete, we return immediately.
       */
      if (operation.shouldRunAsync()) {
        HiveConf conf = operation.getParentSession().getHiveConf();
        long timeout = HiveConf.getTimeVar(conf,
            HiveConf.ConfVars.HIVE_SERVER2_LONG_POLLING_TIMEOUT, TimeUnit.MILLISECONDS);
        try {
          operation.getBackgroundHandle().get(timeout, TimeUnit.MILLISECONDS);
        } catch (TimeoutException e) {
          // No Op, return to the caller since long polling timeout has expired
          LOG.trace(opHandle + ": Long polling timed out");
        } catch (CancellationException e) {
          // The background operation thread was cancelled
          LOG.trace(opHandle + ": The background operation was cancelled", e);
        } catch (ExecutionException e) {
          // The background operation thread was aborted
          LOG.warn(opHandle + ": The background operation was aborted", e);
        } catch (InterruptedException e) {
          // No op, this thread was interrupted
          // In this case, the call might return sooner than long polling timeout
        }
      }
      OperationStatus opStatus = operation.getStatus();
      LOG.debug(opHandle + ": getOperationStatus()");
      return opStatus;
    }
docs: /* (non-Javadoc)
  @see org.apache.hive.service.cli.ICLIService#getOperationStatus(org.apache.hive.service.cli.OperationHandle)