code: public Context resolveContext(Object activityRefStr) {
          if( activityRefStr == null || ! (activityRefStr instanceof String) ) {
              throw new IllegalArgumentException(
                      "CompensationScope can only resolve based on node id strings: " + activityRefStr);
          }
          String activityRef = (String) activityRefStr;
          if( getExceptionHandler(activityRef) != null ) { 
              return this;
          } 
          if( activityRef.startsWith(IMPLICIT_COMPENSATION_PREFIX) ) { 
             String containerRef = activityRef.substring(IMPLICIT_COMPENSATION_PREFIX.length());
             if( containerId.equals(containerRef) ) { 
                 return this;
             }
          }
          return null;
      }
docs: Resolves in one of two cases: when the (String) activityRefStr is equal to:
  1. the id of an activity that has a compensation handler.
  This could be a task with a compensation boundary event or a sub-process
  that contains a compensation event sub-process.
  2. "general:" + the id of the (sub)process that contains the compensation handler. In this
  case, we are signalling the "implicit compensation handler", a.k.a.
  broadcast/general compensation.