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 14554 - Sniffing loaders may cause an NPE on folder delete.
Summary: Sniffing loaders may cause an NPE on folder delete.
Status: CLOSED DUPLICATE of bug 14766
Alias: None
Product: platform
Classification: Unclassified
Component: Data Systems (show other bugs)
Version: 3.x
Hardware: PC Windows ME/2000
: P2 blocker (vote)
Assignee: Vitezslav Stejskal
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-08-17 23:38 UTC by Michael Ottati
Modified: 2008-12-22 20:55 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Test case data for this bug. (49.14 KB, application/octet-stream)
2001-08-17 23:41 UTC, Michael Ottati
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Ottati 2001-08-17 23:38:22 UTC
This error appears to happen when a data loader is written to "sniff" the 
contents of a file prior to declaring that the file belongs to that loader. 
Examples of such behavior are the ant project loader which is shown in the 
traces below. I believe that the behavior would apply to any "sniffing" 
loader. There is at least one other case which will be described below.

To reproduce the problem simply unzip the attached zip file, into an already 
mounted directory. DO NOT OPEN THE FOLDER. When the folder "xmlstuff" is 
recognized, delete it immediately. Upon doing so, I received the exception 
traces shown below.

There are several interesting things that appear to be happening. The first is 
that the loader is being asked to recognize a file for the sole purpose of 
deleting it. Secondly, when the loader performs some action that asks for an 
inputStream of the file being considered for recognition a 
NotifyInputStream is used. The NotifyInputStream constructor always creates an 
exception  hold an internal stack trace of the InputStream creator.

My guess is that the delete and the file recognition are fighting each other in 
two different threads and the file can not be deleted until some other 
thread lets go of the inputstream.

This bug is being filed P2 because it is being created out of a internal Sun P2 
bug (Bugtraq 4463045) which was also filed as P2.

This trace was created with sources which were updated on Fri Aug 17 9:00:00  
PDT 2001

---------------------------------------- Trace Info ----------------------------
------------


Fri Aug 17 12:40:17 PDT 2001: org.openide.filesystems.FSException:  Cannot 
delete file xmlstuff/g.xml in C:\ZZZ\sampledir.
Nested annotation: Cannot delete file xmlstuff/f.xml in C:\ZZZ\sampledir.
org.openide.filesystems.FSException: Cannot delete file xmlstuff/g.xml in 
C:\ZZZ\sampledir.
        at org.openide.filesystems.FSException.io(FSException.java:78)
        at org.openide.filesystems.LocalFileSystem.delete
(LocalFileSystem.java:277)
        at org.netbeans.core.ExLocalFileSystem.delete(ExLocalFileSystem.java:74)
        at org.openide.filesystems.LocalFileSystem$Impl.delete
(LocalFileSystem.java:615)
        at org.openide.filesystems.AbstractFileObject.delete
(AbstractFileObject.java:458)
        at org.openide.loaders.FileEntry.delete(FileEntry.java:100)
        at org.openide.loaders.MultiDataObject.handleDelete
(MultiDataObject.java:409)
        at org.openide.loaders.DataObject$2.run(DataObject.java:521)
        at org.openide.filesystems.EventControl.runAtomicAction
(EventControl.java:69)
        at org.openide.filesystems.FileSystem.runAtomicAction
(FileSystem.java:366)
        at org.openide.loaders.DataObject.delete(DataObject.java:519)
        at org.openide.loaders.DataFolder.handleDelete(DataFolder.java:545)
        at org.openide.loaders.DataObject$2.run(DataObject.java:521)
        at org.openide.filesystems.EventControl.runAtomicAction
(EventControl.java:69)
        at org.openide.filesystems.FileSystem.runAtomicAction
(FileSystem.java:366)
        at org.openide.loaders.DataObject.delete(DataObject.java:519)
        at org.openide.loaders.DataNode.destroy(DataNode.java:210)
        at org.openide.nodes.FilterNode.destroy(FilterNode.java:315)
        at 
org.openide.explorer.ExplorerActions$DeleteActionPerformer$DestroyAtomic.invoke
(ExplorerActions.java:504)
        at $Proxy3.run(Unknown Source)
        at org.openide.filesystems.EventControl.runAtomicAction
(EventControl.java:69)
        at org.openide.filesystems.FileSystem.runAtomicAction
(FileSystem.java:366)
        at org.openide.explorer.ExplorerActions$DestroyInvoker.run
(ExplorerActions.java:545)
        at org.openide.explorer.ExplorerActions$DeleteActionPerformer.doDestroy
(ExplorerActions.java:471)
        at 
org.openide.explorer.ExplorerActions$DeleteActionPerformer.performAction
(ExplorerActions.java:440)
        at org.openide.util.actions.CallbackSystemAction.performAction
(CallbackSystemAction.java:102)
        at org.openide.util.actions.CallableSystemAction.actionPerformed
(CallableSystemAction.java:66)
        at org.netbeans.core.ModuleActions$1.run(ModuleActions.java:85)
        at org.openide.util.Task.run(Task.java:152)
[catch] at org.openide.util.RequestProcessor$ProcessorThread.run
(RequestProcessor.java:611)
 
Fri Aug 17 12:40:17 PDT 2001: java.lang.Exception:  Cannot delete file 
xmlstuff/f.xml in C:\ZZZ\sampledir.
org.openide.filesystems.FSException: Cannot delete file xmlstuff/f.xml in 
C:\ZZZ\sampledir.
        at org.openide.filesystems.FSException.io(FSException.java:78)
        at org.openide.filesystems.LocalFileSystem.delete
(LocalFileSystem.java:277)
        at org.netbeans.core.ExLocalFileSystem.delete(ExLocalFileSystem.java:74)
        at org.openide.filesystems.LocalFileSystem$Impl.delete
(LocalFileSystem.java:615)
        at org.openide.filesystems.AbstractFileObject.delete
(AbstractFileObject.java:458)
        at org.openide.loaders.FileEntry.delete(FileEntry.java:100)
        at org.openide.loaders.MultiDataObject.handleDelete
(MultiDataObject.java:409)
        at org.openide.loaders.DataObject$2.run(DataObject.java:521)
        at org.openide.filesystems.EventControl.runAtomicAction
(EventControl.java:69)
        at org.openide.filesystems.FileSystem.runAtomicAction
(FileSystem.java:366)
        at org.openide.loaders.DataObject.delete(DataObject.java:519)
        at org.openide.loaders.DataFolder.handleDelete(DataFolder.java:545)
        at org.openide.loaders.DataObject$2.run(DataObject.java:521)
        at org.openide.filesystems.EventControl.runAtomicAction
(EventControl.java:69)
        at org.openide.filesystems.FileSystem.runAtomicAction
(FileSystem.java:366)
        at org.openide.loaders.DataObject.delete(DataObject.java:519)
        at org.openide.loaders.DataNode.destroy(DataNode.java:210)
        at org.openide.nodes.FilterNode.destroy(FilterNode.java:315)
        at 
org.openide.explorer.ExplorerActions$DeleteActionPerformer$DestroyAtomic.invoke
(ExplorerActions.java:504)
        at $Proxy3.run(Unknown Source)
        at org.openide.filesystems.EventControl.runAtomicAction
(EventControl.java:69)
        at org.openide.filesystems.FileSystem.runAtomicAction
(FileSystem.java:366)
        at org.openide.explorer.ExplorerActions$DestroyInvoker.run
(ExplorerActions.java:545)
        at org.openide.explorer.ExplorerActions$DeleteActionPerformer.doDestroy
(ExplorerActions.java:471)
        at 
org.openide.explorer.ExplorerActions$DeleteActionPerformer.performAction
(ExplorerActions.java:440)
        at org.openide.util.actions.CallbackSystemAction.performAction
(CallbackSystemAction.java:102)
        at org.openide.util.actions.CallableSystemAction.actionPerformed
(CallableSystemAction.java:66)
        at org.netbeans.core.ModuleActions$1.run(ModuleActions.java:85)
        at org.openide.util.Task.run(Task.java:152)
[catch] at org.openide.util.RequestProcessor$ProcessorThread.run
(RequestProcessor.java:611)
 
Fri Aug 17 12:40:17 PDT 2001: java.lang.Exception: null
java.lang.Exception
        at org.openide.filesystems.StreamPool$NotifyInputStream.<init>
(StreamPool.java:253)
        at org.openide.filesystems.StreamPool.createInputStream
(StreamPool.java:58)
        at org.openide.filesystems.AbstractFileObject.getInputStream
(AbstractFileObject.java:166)
        at 
org.apache.tools.ant.module.loader.AntProjectDataLoader.findPrimaryFile
(AntProjectDataLoader.java:149)
        at org.openide.loaders.MultiFileLoader.findPrimaryFileImpl
(MultiFileLoader.java:232)
        at org.openide.loaders.MultiFileLoader.handleFindDataObject
(MultiFileLoader.java:65)
        at org.openide.loaders.DataLoader.findDataObject(DataLoader.java:221)
        at org.openide.loaders.DataLoaderPool.findDataObject
(DataLoaderPool.java:361)
        at org.openide.loaders.FolderList.createBoth(FolderList.java:561)
        at org.openide.loaders.FolderList.getObjects(FolderList.java:381)
        at org.openide.loaders.FolderList.access$200(FolderList.java:42)
        at org.openide.loaders.FolderList$ListTask.run(FolderList.java:727)
        at org.openide.util.Task.run(Task.java:152)
[catch] at org.openide.util.RequestProcessor$ProcessorThread.run
(RequestProcessor.java:611)
 
Fri Aug 17 12:40:17 PDT 2001: java.lang.Exception: null
java.lang.Exception
        at org.openide.filesystems.StreamPool$NotifyInputStream.<init>
(StreamPool.java:253)
        at org.openide.filesystems.StreamPool.createInputStream
(StreamPool.java:58)
        at org.openide.filesystems.AbstractFileObject.getInputStream
(AbstractFileObject.java:166)
        at 
org.apache.tools.ant.module.loader.AntProjectDataLoader.findPrimaryFile
(AntProjectDataLoader.java:149)
        at org.openide.loaders.MultiFileLoader.findPrimaryFileImpl
(MultiFileLoader.java:232)
        at org.openide.loaders.MultiFileLoader.handleFindDataObject
(MultiFileLoader.java:65)
        at org.openide.loaders.DataLoader.findDataObject(DataLoader.java:221)
        at org.openide.loaders.DataLoaderPool.findDataObject
(DataLoaderPool.java:361)
        at org.openide.loaders.FolderList.createBoth(FolderList.java:561)
        at org.openide.loaders.FolderList.getObjects(FolderList.java:381)
        at org.openide.loaders.FolderList.access$200(FolderList.java:42)
        at org.openide.loaders.FolderList$ListTask.run(FolderList.java:727)
        at org.openide.util.Task.run(Task.java:152)
[catch] at org.openide.util.RequestProcessor$ProcessorThread.run
(RequestProcessor.java:611)
Comment 1 Michael Ottati 2001-08-17 23:41:06 UTC
Created attachment 2226 [details]
Test case data for this bug.
Comment 2 Jan Zajicek 2001-08-20 09:23:35 UTC
Changing Priority to P2.
Comment 3 Vitezslav Stejskal 2001-09-19 14:34:25 UTC
This problem was caused by filesystems implementation.

*** This issue has been marked as a duplicate of 14766 ***
Comment 4 Quality Engineering 2003-07-01 15:59:37 UTC
Resolved for 3.4.x or earlier, no new info since then -> verified
Comment 5 Quality Engineering 2003-07-01 16:33:16 UTC
Resolved for 3.4.x or earlier, no new info since then -> closing.