/** Obtains the detailed {@link hudson.plugins.cobertura.targets.CoverageResult} instance. */
  public synchronized CoverageResult getResult() {
    if (report != null) {
      CoverageResult r = report.get();
      if (r != null) {
        return r;
      }
    }

    CoverageResult r = null;
    for (File reportFile : CoberturaPublisher.getCoberturaReports(owner)) {
      try {
        r = CoberturaCoverageParser.parse(reportFile, r);
      } catch (IOException e) {
        logger.log(Level.WARNING, "Failed to load " + reportFile, e);
      }
    }
    if (r != null) {
      r.setOwner(owner);
      report = new WeakReference<CoverageResult>(r);
      return r;
    } else {
      return null;
    }
  }