protected File openAndLock (String fname, int lmode, boolean create) throws ObjectStoreException { if (tsLogger.logger.isTraceEnabled()) { tsLogger.logger.trace("FileSystemStore.openAndLock(" + fname + ", " + FileLock.modeString(lmode) + ", " + create + ")"); } // File fd = (File) FdCache(fname); File fd = null; if (fd == null) { fd = new File(fname); if (!fd.exists()) { if (createHierarchy(fname)) { if (!lock(fd, lmode, create)) { return null; } else return fd; } else throw new ObjectStoreException("FileSystemStore.openAndLock failed to create hierarchy "+fname); } if (!lock(fd, lmode, create)) fd = null; } return fd; }