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.

Bug 81510

Summary: Delete interceptor SPI
Product: platform Reporter: Maros Sandor <msandor>
Component: FilesystemsAssignee: apireviews <apireviews>
Status: RESOLVED FIXED    
Severity: blocker CC: anebuzelsky, arseniy, jtulach, pnejedly, pzajac, rmatous
Priority: P1 Keywords: API, API_REVIEW_FAST
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: ENHANCEMENT Exception Reporter:
Bug Depends on:    
Bug Blocks: 75959    
Attachments: diff against trunk
diff against release55

Description Maros Sandor 2006-07-31 16:36:52 UTC
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.
Comment 1 rmatous 2006-08-01 10:55:45 UTC
Created attachment 32399 [details]
diff against trunk
Comment 2 rmatous 2006-08-01 11:02:45 UTC
Created attachment 32400 [details]
diff against release55
Comment 3 rmatous 2006-08-01 11:07:54 UTC
Please review, see diffs.
Comment 4 Petr Nejedly 2006-08-03 10:31:47 UTC
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)
Comment 5 Maros Sandor 2006-08-03 11:08:55 UTC
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.
Comment 6 rmatous 2006-08-03 13:12:02 UTC
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.
Comment 7 Petr Nejedly 2006-08-03 14:56:45 UTC
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.
Comment 8 Petr Nejedly 2006-08-03 15:09:53 UTC
See issue 81812 for progress on the FS/DS issue.
Comment 9 rmatous 2006-08-10 17:11:02 UTC
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