text: public synchronized void publish(Revision revision) throws IOException {ensureOpen();if (currentRevision != null) {int compare = revision.compareTo(currentRevision.revision);if (compare == 0) {revision.release();return;}if (compare < 0) {revision.release();throw new IllegalArgumentException("Cannot publish an older revision: rev=" + revision + " current="+ currentRevision);}}final RefCountedRevision oldRevision = currentRevision;currentRevision = new RefCountedRevision(revision);if (oldRevision != null) {oldRevision.decRef();}checkExpiredSessions();}