Index: MultiFileObject.java =================================================================== RCS file: /cvs/openide/src/org/openide/filesystems/MultiFileObject.java,v retrieving revision 1.114.4.1 diff -c -r1.114.4.1 MultiFileObject.java *** MultiFileObject.java 11 Mar 2004 15:31:28 -0000 1.114.4.1 --- MultiFileObject.java 29 Mar 2004 16:33:09 -0000 *************** *** 1427,1446 **** public void releaseLock () { if (this.isValid()) { ! super.releaseLock(); ! ! Iterator it = map.values().iterator(); ! while (it.hasNext()) { ! FileLock l = (FileLock)it.next (); ! l.releaseLock (); } ! map.clear (); ! // clears the reference to this lock from the file object ! MultiFileObject.this.lock = null; } } ! // for better debugging public String toString() { return super.toString() + " for " + MultiFileObject.this + " valid=" + isValid(); // NOI18N --- 1427,1459 ---- public void releaseLock () { if (this.isValid()) { ! super.releaseLock(); ! releaseLockForDelegates(); ! ! if (getCurrentMfLock() == this) { ! // clears the reference to this lock from the file object ! MultiFileObject.this.lock = null; } ! } ! } ! private FileLock getCurrentMfLock() { ! FileLock currentLock = null;; ! if (lock != null) { ! currentLock = (FileLock)lock.get(); } + return currentLock; } ! ! private void releaseLockForDelegates() { ! Iterator it = map.values().iterator(); ! while (it.hasNext()) { ! FileLock l = (FileLock)it.next (); ! l.releaseLock (); ! } ! map.clear (); ! } ! // for better debugging public String toString() { return super.toString() + " for " + MultiFileObject.this + " valid=" + isValid(); // NOI18N