code: @Override
    public FlowGraphPath findPath(FlowSpec flowSpec) throws PathFinder.PathFinderException, ReflectiveOperationException {
      try {
        rwLock.readLock().lock();
        //Instantiate a PathFinder.
        Class pathFinderClass = Class.forName(ConfigUtils
            .getString(flowSpec.getConfig(), FlowGraphConfigurationKeys.FLOW_GRAPH_PATH_FINDER_CLASS,
                FlowGraphConfigurationKeys.DEFAULT_FLOW_GRAPH_PATH_FINDER_CLASS));
        PathFinder pathFinder =
            (PathFinder) GobblinConstructorUtils.invokeLongestConstructor(pathFinderClass, this, flowSpec);
        return pathFinder.findPath();
      } finally {
        rwLock.readLock().unlock();
      }
    }
docs: {@inheritDoc}*