code: protected static SubSingleBenchmarkResult createMerge(
              SingleBenchmarkResult singleBenchmarkResult, SubSingleBenchmarkResult oldResult,
              int subSingleBenchmarkIndex) {
          SubSingleBenchmarkResult newResult = new SubSingleBenchmarkResult(singleBenchmarkResult, subSingleBenchmarkIndex);
          newResult.pureSubSingleStatisticList = new ArrayList<>(oldResult.pureSubSingleStatisticList.size());
          for (PureSubSingleStatistic oldSubSingleStatistic : oldResult.pureSubSingleStatisticList) {
              newResult.pureSubSingleStatisticList.add(
                      oldSubSingleStatistic.getStatisticType().buildPureSubSingleStatistic(newResult));
          }
  
          newResult.initSubSingleStatisticMap();
          for (SubSingleStatistic newSubSingleStatistic : newResult.effectiveSubSingleStatisticMap.values()) {
              SubSingleStatistic oldSubSingleStatistic = oldResult.getSubSingleStatistic(newSubSingleStatistic.getStatisticType());
              if (!oldSubSingleStatistic.getCsvFile().exists()) {
                  if (oldResult.hasAnyFailure()) {
                      newSubSingleStatistic.initPointList();
                      logger.debug("Old result ({}) is a failure, skipping merge of its sub single statistic ({}).",
                              oldResult, oldSubSingleStatistic);
                      continue;
                  } else {
                      throw new IllegalStateException("Could not find old result's (" + oldResult
                              + ") sub single statistic's (" + oldSubSingleStatistic + ") CSV file.");
                  }
              }
              oldSubSingleStatistic.unhibernatePointList();
              newSubSingleStatistic.setPointList(oldSubSingleStatistic.getPointList());
              oldSubSingleStatistic.hibernatePointList();
          }
          // Skip oldResult.reportDirectory
          // Skip oldResult.usedMemoryAfterInputSolution
          newResult.succeeded = oldResult.succeeded;
          newResult.score = oldResult.score;
          newResult.timeMillisSpent = oldResult.timeMillisSpent;
          newResult.scoreCalculationCount = oldResult.scoreCalculationCount;
  
          singleBenchmarkResult.getSubSingleBenchmarkResultList().add(newResult);
          return newResult;
      }
docs: ************************************************************************