ProjectData () { ProjectData projectData = myData.get(); if (projectData != null) return projectData; List<ProjectData> dataList = Arrays.stream(mySuites) .map(suite -> suite.getCoverageData(null)) .filter(data -> data != null) .toList(); ProjectData data; if (dataList.size() == 1) { data = dataList.get(0); } else { data = new ProjectData(); for (ProjectData coverageData : dataList) { data.merge(coverageData); } data.setIncludePatterns(mergeIncludeFilters(dataList)); } myData = new SoftReference<>(data); return data; }