docs: @Override
    public void signal(String signalName, Object signalData) {
      if (getActivity() == null) {
        throw new PvmException("cannot signal execution " + this.id + ": it has no current activity");
      }
  
      SignallableActivityBehavior activityBehavior = (SignallableActivityBehavior) activity.getActivityBehavior();
      try {
        activityBehavior.signal(this, signalName, signalData);
      } catch (RuntimeException e) {
        throw e;
      } catch (Exception e) {
        throw new PvmException("couldn't process signal '" + signalName + "' on activity '" + activity.getId() + "': " + e.getMessage(), e);
      }
    }