code: @Override
      public boolean isSynchronous() {
          if (canBeSynchronous()) {
              if (this.canBeAsynchronous()) {
                  String attr = this.getAttributeValue(PROP_SYNCHRONOUS_RESPONSE);
                  return (attr!=null && attr.equalsIgnoreCase("true"));
              } else return true;
          } else return false;
      }
docs: The method is used to determine if the current usage is synchronous (waiting for response) or not.
  The method is used only when both canBeSynchronous() and canBeAsynchronous() are true