/** Cancels the current topic monitor, if there is one. Prints exception if cannot. */
 private void cancelMonitor() {
   if (bean.getStatus().isFinal() && topicConnection != null) {
     try {
       topicConnection.close();
     } catch (Exception ne) {
       logger.error("Cannot close topic", ne);
     }
   }
 }
  protected void dryRun(int size, boolean complete) {
    for (int i = 0; i < size; i++) {

      if (bean.getStatus() == Status.REQUEST_TERMINATE || bean.getStatus() == Status.TERMINATED) {
        return;
      }
      try {
        Thread.sleep(100);
      } catch (InterruptedException e) {
        logger.error("Dry run sleeping failed", e);
      }
      System.out.println("Dry run : " + bean.getPercentComplete());
      bean.setPercentComplete(i);
      broadcast(bean);
    }

    bean.setStatus(Status.COMPLETE);
    bean.setPercentComplete(100);
    bean.setMessage("Dry run complete (no software run)");
    broadcast(bean);
  }