private static RrdDb createDB()

in src/main/java/org/apache/sling/commons/metrics/rrd4j/impl/RRD4JReporter.java [366:389]


    private static RrdDb createDB(RrdDef definition) throws IOException {
        File dbFile = new File(definition.getUri());
        if (!dbFile.getParentFile().exists()) {
            if (!dbFile.getParentFile().mkdirs()) {
                throw new IOException("Unable to create directory for RRD file: " + dbFile.getParent());
            }
        }
        RrdDb db = null;
        if (dbFile.exists()) {
            db = RrdDb.of(definition.getUri());
            if (!db.getRrdDef().equals(definition)) {
                // definition changed -> re-create DB
                db.close();
                File renamed = renameDB(dbFile);
                LOGGER.info("Configuration changed, renamed existing RRD file to: {}",
                        renamed.getPath());
                db = null;
            }
        }
        if (db == null) {
            db = new RrdDb(definition);
        }
        return db;
    }