code: @Trivial
      private final String getOwner() {
          ComponentMetaData cData = ComponentMetaDataAccessorImpl.getComponentMetaDataAccessor().getComponentMetaData();
          String name = cData == null ? null : cData.getJ2EEName().getApplication();
          if (name == null) {
              ClassLoader threadContextClassLoader = InvokerTask.priv.getContextClassLoader();
              String identifier = classloaderIdSvc.getClassLoaderIdentifier(threadContextClassLoader);
              // Parse the app name from the identifier. For example, from WebModule:app#module#component
              if (identifier != null) {
                  int start = identifier.indexOf(':');
                  if (start > 0) {
                      int end = identifier.indexOf('#', ++start);
                      if (end > 0)
                          name = identifier.substring(start, end);
                  }
              }
          }
          return name;
      }
docs: Utility method to compute the owner that should be used for isolation of tasks (typically between applications).
  If component metadata exists on the thread, the application name is used.
  Otherwise, if a thread context class loader is present, the application name from the class loader identifier is used.
  Otherwise, null is returned.
  
  @return name of the task owner.