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 - Delete interceptor SPI
Summary: Delete interceptor SPI
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Filesystems (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker (vote)
Assignee: apireviews
URL:
Keywords: API, API_REVIEW_FAST
Depends on:
Blocks: 75959
  Show dependency tree
 
Reported: 2006-07-31 16:36 UTC by Maros Sandor
Modified: 2008-12-22 20:07 UTC (History)
6 users (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments
diff against trunk (35.44 KB, patch)
2006-08-01 10:55 UTC, rmatous
Details | Diff
diff against release55 (40.25 KB, patch)
2006-08-01 11:02 UTC, rmatous
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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