private boolean readOrCreateIndex(CollectionManager.Force ff, Formatter f) throws IOException { File idx = gc.getIndexFile(); // force new index or test for new index needed boolean force = ((ff == CollectionManager.Force.always) || (ff == CollectionManager.Force.test && needsUpdate(idx.lastModified(), f))); // otherwise, we're good as long as the index file exists and can be read if (force || !idx.exists() || !readIndex(idx.getPath())) { logger.info("TimePartitionBuilder createIndex {}", idx.getPath()); createPartitionedIndex(f); // write out index readIndex(idx.getPath()); // read back in index return true; } return false; }