This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
In subversion module we need to be able to intercept FileObject.delete() calls because we must leave subversion metadata on disk during (recursive) deletes. Related is also Issue #73042 which introduced move and rename interceptors and is already resolved.
Created attachment 32399 [details] diff against trunk
Created attachment 32400 [details] diff against release55
Please review, see diffs.
Sorry, but NOGO so far due to implementation problems. After svn-delete of a folder with 1.000 files, there comes (potentially several) 1.000.000(s) calls to MFS.isValid(), which ends up in as many syscalls and takes up to a minute alone in exitAtomicAction. command line svn rm on the folder takes 18s, deletion of the same folder w/o svn is instant compared to this (<2s)
Uh, is this an argument for NOGO? I'd rather wait some 60s rather than have my workdir corrupted. Needless to say the usecase is a bit, well, artificial.
Just a clarification to Peter's evaluation. The problem described by Peter seems to be perf. problem between DS and FS under some circumstances. This problem can be simulated even without subversion support. Deleting via subversion is just case how to simulate this problem.
OK, after deeper review of the event storm issue, we found out the problem is unrelated to the masterfs change and was there for >4 years. It was only uncovered by the subversion usage pattern and doesn't cause problems even with subversion installed, except for svn controlled files. I aggree with the change. Note: The use case is not that artifical, there was very similar behaviour after folder rename, IIRC.
See issue 81812 for progress on the FS/DS issue.
Fixed in 5.5 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObj.java,v new revision: 1.12.8.1.2.3; previous revision: 1.12.8.1.2.2 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObj.java,v new revision: 1.12.2.1.2.3; previous revision: 1.12.2.1.2.2 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/ReplaceForSerialization.java,v new revision: 1.4.58.3; previous revision: 1.4.58.2 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/BaseFileObj.java,v new revision: 1.16.16.2.2.3; previous revision: 1.16.16.2.2.2 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/children/ChildrenCache.java,v new revision: 1.3.58.2; previous revision: 1.3.58.1 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/children/ChildrenSupport.java,v new revision: 1.10.42.3; previous revision: 1.10.42.2 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObjTest.java,v new revision: 1.6.18.2.2.2; previous revision: 1.6.18.2.2.1 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/ProvidedExtensions.java,v new revision: 1.2.10.3; previous revision: 1.2.10.2 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileObject.java,v new revision: 1.45.2.1.2.3; previous revision: 1.45.2.1.2.2 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/ProvidedExtensionsProxy.java,v new revision: 1.2.10.3; previous revision: 1.2.10.2 /cvs/openide/masterfs/apichanges.xml,v <-- apichanges.xml new revision: 1.2.2.3; previous revision: 1.2.2.2 /cvs/openide/masterfs/manifest.mf,v <-- manifest.mf new revision: 1.11.16.1.2.4; previous revision: 1.11.16.1.2.3 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileObjectTestHid.java,v new revision: 1.24.6.1.2.3; previous revision: 1.24.6.1.2.2 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileSystemWithExtensionsTest.java,v new revision: 1.2.10.3; previous revision: 1.2.10.2 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/CacheTest.java,v new revision: 1.2.6.2.2.2; previous revision: 1.2.6.2.2.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileSystemTest.java,v new revision: 1.7.72.3; previous revision: 1.7.72.2 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/NamingFactory.java,v new revision: 1.5.28.1.2.3; previous revision: 1.5.28.1.2.2 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java,v new revision: 1.2.10.3; previous revision: 1.2.10.2