private synchronized void report(AsyncStatus.ASYNC_STATUS status) {
        Map<PipesResult.STATUS, Long> localCounts = new HashMap<>();
        counts.entrySet().forEach( e -> localCounts.put(e.getKey(), e.getValue().longValue()));
        asyncStatus.update(localCounts, totalCountResult, status);
        try (Writer writer = Files.newBufferedWriter(statusFile, StandardCharsets.UTF_8)) {
            objectMapper.writeValue(writer, asyncStatus);
        } catch (IOException e) {
            LOG.warn("couldn't write report", e);
        }
    }
This is intended to write summary statistics to disk
periodically.

 As of the 2.5.0 release, this is ALPHA version.  There may be breaking changes
 in the future.

 Because {@link AsyncStatus uses {@link java.time.Instant}, if you are deserializing
 with jackson-databind, you'll need to add jackson-datatype-jsr310. See
 the unit tests for how to deserialize AsyncStatus.
tika-pipes/tika-pipes-reporters/tika-pipes-reporter-fs-status/src/main/java/org/apache/tika/pipes/reporters/fs/FileSystemStatusReporter.java