try { BufferedInputStream bis = recoverFile();  if (bis == null) return new FileInputStream(orgFile.getPath()); else return bis; } catch (IOException e) { unlock();  release();  throw e;
if (textFile != null) { inputFile = textFile; if (textIS != null) return textIS; return new FileInputStream(textFile);
	synchronized InputStream getInputStream() throws IOException {		try {			lock();		} catch (IOException e) {			/* the lock request failed; decrement the use count */			release();			throw e;		}		try {			BufferedInputStream bis = recoverFile();			if (bis == null)				return new FileInputStream(orgFile.getPath());			else				return bis; // don't double read file from storage		} catch (IOException e) {			unlock();			release();			throw e;		}	}