Index: src/org/openide/filesystems/MultiFileObject.java =================================================================== RCS file: /cvs/openide/src/org/openide/filesystems/MultiFileObject.java,v retrieving revision 1.114 retrieving revision 1.115 diff -u -r1.114 -r1.115 --- src/org/openide/filesystems/MultiFileObject.java 9 Feb 2004 09:33:35 -0000 1.114 +++ src/org/openide/filesystems/MultiFileObject.java 10 Mar 2004 13:48:35 -0000 1.115 @@ -1441,6 +1441,12 @@ } } } + + // for better debugging + public String toString() { + return super.toString() + " for " + MultiFileObject.this + " valid=" + isValid(); // NOI18N + } + /** Overloaded WeakListener.FileChange only to be able recognize this listener * by means of instanceof. */ Index: loaders/src/org/openide/text/DataEditorSupport.java =================================================================== RCS file: /cvs/openide/loaders/src/org/openide/text/DataEditorSupport.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- loaders/src/org/openide/text/DataEditorSupport.java 17 Feb 2004 11:44:50 -0000 1.13 +++ loaders/src/org/openide/text/DataEditorSupport.java 10 Mar 2004 13:48:36 -0000 1.14 @@ -402,7 +402,16 @@ if (fileLock == null || !fileLock.isValid()) { fileLock = takeLock (); } - return getFileImpl ().getOutputStream (fileLock); + try { + return getFileImpl ().getOutputStream (fileLock); + } catch (IOException fse) { + // [pnejedly] just retry once. + // Ugly workaround for #40552 + if (fileLock == null || !fileLock.isValid()) { + fileLock = takeLock (); + } + return getFileImpl ().getOutputStream (fileLock); + } } /** The time when the data has been modified