Index: AbstractFileObject.java =================================================================== RCS file: /cvs/openide/src/org/openide/filesystems/AbstractFileObject.java,v retrieving revision 1.83.2.1 diff -u -r1.83.2.1 AbstractFileObject.java --- AbstractFileObject.java 7 Mar 2003 16:28:48 -0000 1.83.2.1 +++ AbstractFileObject.java 27 Mar 2003 13:03:27 -0000 @@ -333,9 +333,7 @@ } getAbstractFileSystem ().change.createFolder (getPath () + PATH_SEP + name); - - refresh (name, null); - + registerChild (name); fo = getAbstractChild (name); if (fo == null) { @@ -382,8 +380,7 @@ } getAbstractFileSystem ().change.createData (getPath () + PATH_SEP + n); - refresh (n, null); - + registerChild (n); AbstractFileObject fo = getAbstractChild (n); if (fo == null) { @@ -555,8 +552,7 @@ if (from.copy (getPath (), to, target.getPath () + PATH_SEP + n)) { // the transfer implementation thinks that the copy succeeded - abstractTarget.refresh (n, null); - + abstractTarget.registerChild (n); AbstractFileObject fo = abstractTarget.getAbstractChild (n); if (fo == null) { @@ -639,8 +635,7 @@ // fs.attr.deleteAttributes (fullName); // refresh the target so new file appears there - abstractTarget.refresh (n, null); - + abstractTarget.registerChild (n); AbstractFileObject fo = abstractTarget.getAbstractChild (n); if (fo == null) { Index: AbstractFolder.java =================================================================== RCS file: /cvs/openide/src/org/openide/filesystems/AbstractFolder.java,v retrieving revision 1.64 diff -u -r1.64 AbstractFolder.java --- AbstractFolder.java 27 Feb 2003 23:40:44 -0000 1.64 +++ AbstractFolder.java 27 Mar 2003 13:03:27 -0000 @@ -592,6 +592,22 @@ this.refresh(added, removed, fire, expected, null); } + void registerChild (String name) { + synchronized (this) { + if (map == null) + check (); + + Object o = map.put(name, new WeakReference(null)); + if (o != null) { + map.put(name, o); + } else { + String newChildren[] = new String [children.length + 1]; + System.arraycopy(children, 0, newChildren, 0, children.length); + newChildren [children.length] = name; + children = newChildren; + } + } + }