public void run()

in src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java [50:77]


    public void run() {
        String fileName = queue.getName() + "-checkpoint";
        File checkpointFile = new File(checkpointDirectory, fileName + "-new");
        QueueItemMapper mapper = new QueueItemMapper();
        log.debug("started checkpointing");

        try {
            if (checkpointFile.exists()) {
                assert checkpointFile.delete();
            }
            assert checkpointFile.createNewFile();
            Collection<String> lines = new LinkedList<String>();
            FileOutputStream fileOutputStream = new FileOutputStream(checkpointFile);
            for (DistributionQueueEntry queueEntry : queue.getEntries(0, -1)) {
                DistributionQueueItem item = queueEntry.getItem();
                String line = mapper.writeQueueItem(item);
                lines.add(line);
            }
            log.debug("parsed {} items", lines.size());
            IOUtils.writeLines(lines, null, fileOutputStream, Charset.defaultCharset());
            fileOutputStream.flush();
            fileOutputStream.close();
            boolean success = checkpointFile.renameTo(new File(checkpointDirectory, fileName));
            log.debug("checkpoint succeeded: {}", success);
        } catch (Exception e) {
            log.error("failed checkpointing for queue {}", queue.getName());
        }
    }