* @return a linear index for the specified type
* @throws IOException if we cannot write the index file
*/
public synchronized Index loadIndex( final File inputFile, final FeatureCodec codec) throws IOException {
final File indexFile = Tribble.indexFile(inputFile);
final FSLockWithShared lock = new FSLockWithShared(indexFile);
Index idx = null;
// If the index file exists and is readable, attempt to load it from disk. We'll get null back
// if a problem was discovered with the index file when it was inspected, and we'll get an
// in-memory index back in the case where the index file could not be locked.