code: protected <T, C> List<T> processSelectGroup(String name, C criteria, T result, Collection<CpoWhere> wheres, Collection<CpoOrderBy> orderBy, Collection<CpoNativeFunction> nativeExpressions, boolean useRetrieve) throws CpoException {
      Session session = null;
      CpoArrayResultSet<T> resultSet = new CpoArrayResultSet<>();
  
      try {
        session = getWriteSession();
        processSelectGroup(name, criteria, result, wheres, orderBy, nativeExpressions, session, useRetrieve, resultSet);
      } catch (Exception e) {
        // Any exception has to try to rollback the work;
        ExceptionHelper.reThrowCpoException(e, "processSelectGroup(String name, Object criteria, Object result,CpoWhere where, Collection orderBy, boolean useRetrieve) failed");
      }
      return resultSet;
    }
docs: DOCUMENT ME!
  
  @param name        DOCUMENT ME!
  @param criteria    DOCUMENT ME!
  @param result      DOCUMENT ME!
  @param wheres      DOCUMENT ME!
  @param orderBy     DOCUMENT ME!
  @param useRetrieve DOCUMENT ME!
  @return DOCUMENT ME!
  @throws CpoException DOCUMENT ME!