text: public synchronized InputStream obtainFile(String sessionID, String source, String fileName) throws IOException {ensureOpen();ReplicationSession session = sessions.get(sessionID);if (session != null && session.isExpired(expirationThresholdMilllis)) {releaseSession(sessionID);session = null;}if (session == null) {throw new SessionExpiredException("session (" + sessionID + ") expired while obtaining file: source=" + source+ " file=" + fileName);}sessions.get(sessionID).markAccessed();return session.revision.revision.open(source, fileName);}