void refreshProjects() throws Exception {
    MantisConnectPortType soap = createSoap();
    myAllProjectsAvailable = checkAllProjectsAvailable(soap);

    List<MantisProject> projects =
      new ArrayList<>(ContainerUtil.map(fetchUserProjects(soap), data -> new MantisProject(data)));
    List<MantisFilter> commonFilters = new LinkedList<>();
    for (MantisProject project : projects) {
      FilterData[] rawFilters = fetchProjectFilters(soap, project);
      List<MantisFilter> projectFilters = new LinkedList<>();
      for (FilterData data : rawFilters) {
        MantisFilter filter = new MantisFilter(data);
        if (data.getProject_id().intValue() == 0) {
          commonFilters.add(filter);
        }
        projectFilters.add(filter);
      }

      projectFilters.add(0, MantisFilter.newUndefined());
      project.setFilters(projectFilters);
    }

    commonFilters.sort(Comparator.comparing(MantisFilter::getName));
    commonFilters.add(0, MantisFilter.newUndefined());

    MantisProject undefined = MantisProject.newUndefined();
    undefined.setFilters(commonFilters);
    projects.add(0, undefined);

    myProjects = projects;
  }
void refreshProjects()