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.
Build 200409071800 1.Run IDE with new userdir 2.Create a new Java application 3.Close it 4.Delete it outside the IDE 5.Create new java application with the same name 6.EXCEPTION See attachment. Notice: Steps 3 to 5 must occur immediately,if not,variety of different exceptions appear in the log.
Created attachment 17519 [details] java.io.FileNotFoundException
Don't you have space in the project path or in your userdir path?
Created attachment 17520 [details] exc stack trace
Attached second exception that was thown. Easily reproducible with clean userdir.
Wow - this one is P1? :))))
Regression, it's easily reproducible and the product going out is Beta2! Doesn't seem to be reproducible on trunk build.
Moreover this is the only way how user can delete unwanted project - close it in IDE and delete from disk by some system utility. So you might consider it also as broken functionality.
I've just reproduced it in trunk build.
Exception 1) DefaultClassPathProvider calls FileObject.isValid () before trying to handle the file. But it seems that the file is deleted after the test. The only what I can do is catch this Exception and recver from it. Exception 2) The same problem DefaultClassPathProvider caled with valid FileObject which root becomes invalid before the classpath is created. The only question is why the DefaultClassPathProvider is contacted when the project is closed. This seems to be problem of javacore. Adding them on CC.
Probably a bug in javacore - why should it be asking for the classpath of a file that no longer exists? However it is strange that FileObject.isValid returns true before. For debugging, try if (!file.isValid ()) { return null; } // added: File f = FileUtil.toFile(file); assert f == null || f.exists() : "MasterFileObject.isValid() wrong?";
Adding Radek to CC. FO.isValid should do refresh on file to detect that the file is already deleted.
Created attachment 17530 [details] isValid reimplemented
I am not able to reproduce it on my Linux, I will try it on Windows to be able to test fixed FO.isValid (). It will probably help. In addition to this I can catch FileNotFoundException and return null ClassPath. Decreasing priority to P2.
The issue is not easy to reproduce even on Windows.
It seems that the Radek's patch helped. I've tried it 20 times and I didn't got FileNotFoundException. But I've found a deadlock in the javacore: Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode): "Suggestions Broker" daemon prio=2 tid=0x05a807d8 nid=0x538 in Object.wait() [60 2f000..602fd8c] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.netbeans.modules.javacore.ExclusiveMutex.enter(ExclusiveMutex.jav a:106) - locked <0x110eb500> (a org.netbeans.modules.javacore.ExclusiveMutex) at org.netbeans.mdr.NBMDRepositoryImpl.beginTrans(NBMDRepositoryImpl.jav a:232) at org.netbeans.modules.java.Util.getDocumentText(Util.java:345) at org.netbeans.modules.java.Util.getContent(Util.java:365) at org.netbeans.modules.tasklist.providers.JavaSuggestionContext.getCont ent(JavaSuggestionContext.java:32) at org.netbeans.modules.tasklist.providers.SuggestionContext.getCharSequ ence(SuggestionContext.java:62) at org.netbeans.modules.tasklist.docscan.SourceTaskProvider.scanAll(Sour ceTaskProvider.java:284) at org.netbeans.modules.tasklist.docscan.SourceTaskProvider.scan(SourceT askProvider.java:137) at org.netbeans.modules.tasklist.suggestions.SuggestionManagerImpl.dispa tchScan(SuggestionManagerImpl.java:693) at org.netbeans.modules.tasklist.suggestions.SuggestionsBroker$2.run(Sug gestionsBroker.java:615) at org.openide.util.Task.run(Task.java:136) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java :686) "Java-Folds" daemon prio=2 tid=0x0596ea30 nid=0xf90 waiting for monitor entry [5 e6f000..5e6fd8c] at org.netbeans.modules.javacore.ExclusiveMutex.enter(ExclusiveMutex.jav a:96) - waiting to lock <0x110eb500> (a org.netbeans.modules.javacore.Exclusiv eMutex) at org.netbeans.mdr.NBMDRepositoryImpl.beginTrans(NBMDRepositoryImpl.jav a:232) at org.netbeans.modules.javacore.JMManager.getResource(JMManager.java:40 9) at org.netbeans.modules.javacore.JMManager.getResource(JMManager.java:40 1) at org.netbeans.modules.editor.java.NbJavaFoldManager.getResource(NbJava FoldManager.java:564) at org.netbeans.modules.editor.java.NbJavaFoldManager.run(NbJavaFoldMana ger.java:191) at org.openide.util.Task.run(Task.java:136) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java :686) "Parsing Event Queue" daemon prio=2 tid=0x0587ec70 nid=0xf8c in Object.wait() [5 b8f000..5b8fd8c] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.netbeans.modules.javacore.ExclusiveMutex.enter(ExclusiveMutex.jav a:106) - locked <0x110eb500> (a org.netbeans.modules.javacore.ExclusiveMutex) at org.netbeans.mdr.NBMDRepositoryImpl.beginTrans(NBMDRepositoryImpl.jav a:232) at org.netbeans.mdr.handlers.BaseObjectHandler._lock(BaseObjectHandler.j ava:200) at org.netbeans.mdr.handlers.FeaturedHandler._preGet(FeaturedHandler.jav a:55) at org.netbeans.jmi.javamodel.Resource$Impl.getName(Unknown Source) at org.netbeans.modules.java.JavaNode$PropL.resourceParsed(JavaNode.java :246) at org.netbeans.modules.java.JavaEditor$WParsingListener.resourceParsed( JavaEditor.java:2762) at org.netbeans.modules.javacore.JMManager$6.run(JMManager.java:1189) at org.openide.util.Task.run(Task.java:136) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java :686) "Text-Layout" prio=2 tid=0x05ab0008 nid=0xe6c in Object.wait() [62bf000..62bfd8c ] at java.lang.Object.wait(Native Method) - waiting on <0x11970298> (a org.netbeans.editor.view.spi.ViewLayoutQueu e) at java.lang.Object.wait(Object.java:429) at org.netbeans.editor.view.spi.ViewLayoutQueue.waitForTask(ViewLayoutQu eue.java:128) - locked <0x11970298> (a org.netbeans.editor.view.spi.ViewLayoutQueue) at org.netbeans.editor.view.spi.ViewLayoutQueue$LayoutThread.run(ViewLay outQueue.java:182) "Navigation View Queue" daemon prio=2 tid=0x059f4558 nid=0xe0c in Object.wait() [61ef000..61efd8c] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.netbeans.modules.javacore.ExclusiveMutex.enter(ExclusiveMutex.jav a:106) - locked <0x110eb500> (a org.netbeans.modules.javacore.ExclusiveMutex) at org.netbeans.mdr.NBMDRepositoryImpl.beginTrans(NBMDRepositoryImpl.jav a:232) at org.netbeans.modules.java.ui.NavigationView.selectNodeImpl(Navigation View.java:323) at org.netbeans.modules.java.ui.NavigationView.access$100(NavigationView .java:64) at org.netbeans.modules.java.ui.NavigationView$2.run(NavigationView.java :310) at org.openide.util.Task.run(Task.java:136) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java :686) "Scanning Queue" daemon prio=2 tid=0x059ea460 nid=0xe04 in Object.wait() [616f00 0..616fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x130b9260> (a org.netbeans.modules.editor.NbEditorDocumen t) at java.lang.Object.wait(Object.java:429) at javax.swing.text.AbstractDocument.writeLock(AbstractDocument.java:134 2) - locked <0x130b9260> (a org.netbeans.modules.editor.NbEditorDocument) at org.netbeans.editor.BaseDocument.extWriteLock(BaseDocument.java:1109) - locked <0x130b9260> (a org.netbeans.modules.editor.NbEditorDocument) at org.netbeans.editor.BaseDocument.atomicLock(BaseDocument.java:1131) - locked <0x130b9260> (a org.netbeans.modules.editor.NbEditorDocument) at org.netbeans.editor.BaseDocument.runAtomicAsUser(BaseDocument.java:96 4) at org.netbeans.editor.GuardedDocument.runAtomic(GuardedDocument.java:21 7) at org.openide.text.NbDocument.runAtomic(NbDocument.java:341) at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.commitCh anges(ResourceImpl.java:642) at org.netbeans.modules.javacore.ExclusiveMutex.notifyElements(Exclusive Mutex.java:423) at org.netbeans.modules.javacore.ExclusiveMutex.leave(ExclusiveMutex.jav a:299) - locked <0x110eb500> (a org.netbeans.modules.javacore.ExclusiveMutex) at org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java: 253) at org.netbeans.modules.javacore.JMManager.resolveCodebases(JMManager.ja va:818) at org.netbeans.modules.javacore.JMManager$2.run(JMManager.java:778) at org.openide.util.Task.run(Task.java:136) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java :686) "MDR event dispatcher" daemon prio=7 tid=0x02e84900 nid=0xde0 in Object.wait() [ 2f7f000..2f7fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x110e5590> (a java.util.LinkedList) at java.lang.Object.wait(Object.java:429) at org.netbeans.mdr.util.EventNotifier$EventsDelivery.run(EventNotifier. java:257) - locked <0x110e5590> (a java.util.LinkedList) at java.lang.Thread.run(Thread.java:534) "DestroyJavaVM" prio=5 tid=0x00035890 nid=0x458 waiting on condition [0..7fad8] "TimerQueue" daemon prio=5 tid=0x02e8c110 nid=0xdb4 in Object.wait() [5f9f000..5 f9fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x10f9e550> (a javax.swing.TimerQueue) at javax.swing.TimerQueue.run(TimerQueue.java:231) - locked <0x10f9e550> (a javax.swing.TimerQueue) at java.lang.Thread.run(Thread.java:534) "AWT-EventQueue-1" prio=7 tid=0x02ed2438 nid=0xdb8 in Object.wait() [5bcf000..5b cfd8c] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.netbeans.modules.javacore.ExclusiveMutex.enter(ExclusiveMutex.jav a:106) - locked <0x110eb500> (a org.netbeans.modules.javacore.ExclusiveMutex) at org.netbeans.mdr.NBMDRepositoryImpl.beginTrans(NBMDRepositoryImpl.jav a:232) at org.netbeans.modules.java.JavaDataObject.getCookie(JavaDataObject.jav a:814) at org.netbeans.modules.java.JavaEditor.open(JavaEditor.java:335) at org.openide.actions.OpenAction.performAction(OpenAction.java:54) at org.openide.util.actions.NodeAction$3.run(NodeAction.java:440) at org.openide.util.actions.CallableSystemAction.doPerformAction(Callabl eSystemAction.java:116) at org.openide.util.actions.NodeAction$DelegateAction.actionPerformed(No deAction.java:438) at org.netbeans.modules.project.ui.ProjectUtilities$1.run(ProjectUtiliti es.java:136) at org.openide.util.Mutex.doEvent(Mutex.java:903) at org.openide.util.Mutex.writeAccess(Mutex.java:318) at org.netbeans.modules.project.ui.ProjectUtilities.openAndSelectNewObje ct(ProjectUtilities.java:128) at org.netbeans.modules.project.ui.actions.NewProject$1.run(NewProject.j ava:145) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) at java.awt.EventQueue.dispatchEvent(EventQueue.java:454) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh read.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:151) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:141) at java.awt.Dialog$1.run(Dialog.java:540) at java.awt.Dialog.show(Dialog.java:561) at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter. java:780) at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.jav a:823) at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:8 11) at org.openide.util.Mutex.doEventAccess(Mutex.java:923) at org.openide.util.Mutex.readAccess(Mutex.java:158) at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java: 796) at java.awt.Component.show(Component.java:1133) at java.awt.Component.setVisible(Component.java:1088) at org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery.show Dialog(DialogDisplayerImpl.java:146) at org.netbeans.core.windows.services.DialogDisplayerImpl.notify(DialogD isplayerImpl.java:161) at org.openide.text.CloneableEditorSupport.checkReload(CloneableEditorSu pport.java:1629) at org.openide.text.CloneableEditorSupport.access$1500(CloneableEditorSu pport.java:79) at org.openide.text.CloneableEditorSupport$10.run(CloneableEditorSupport .java:2003) at org.netbeans.editor.BaseDocument.runAtomicAsUser(BaseDocument.java:96 6) at org.netbeans.editor.GuardedDocument.runAtomic(GuardedDocument.java:21 7) at org.openide.text.NbDocument.runAtomic(NbDocument.java:341) at org.openide.text.CloneableEditorSupport$10.run(CloneableEditorSupport .java:2000) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) at java.awt.EventQueue.dispatchEvent(EventQueue.java:454) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh read.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:151) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:141) at java.awt.Dialog$1.run(Dialog.java:540) at java.awt.Dialog.show(Dialog.java:561) at java.awt.Component.show(Component.java:1133) at java.awt.Component.setVisible(Component.java:1088) at org.netbeans.modules.javacore.ProgressPanel.setVisible(ProgressPanel. java:106) at org.netbeans.modules.javacore.ProgressPanel.openProgressDialog(Progre ssPanel.java:239) at org.netbeans.modules.javacore.JMManager$5.run(JMManager.java:1110) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) at java.awt.EventQueue.dispatchEvent(EventQueue.java:454) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh read.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100) "Error Annotation Queue" daemon prio=2 tid=0x05830a48 nid=0xc58 waiting for moni tor entry [5eaf000..5eafd8c] at org.netbeans.modules.javacore.ExclusiveMutex.enter(ExclusiveMutex.jav a:96) - waiting to lock <0x110eb500> (a org.netbeans.modules.javacore.Exclusiv eMutex) at org.netbeans.mdr.NBMDRepositoryImpl.beginTrans(NBMDRepositoryImpl.jav a:232) at org.netbeans.modules.javacore.JMManager.getResource(JMManager.java:40 9) at org.netbeans.modules.javacore.JMManager.getResource(JMManager.java:40 1) at org.netbeans.modules.java.JavaEditor.getResource(JavaEditor.java:403) at org.netbeans.modules.java.JavaEditor.refreshAnnotations(JavaEditor.ja va:375) at org.netbeans.modules.java.JavaEditor.access$200(JavaEditor.java:70) at org.netbeans.modules.java.JavaEditor$16.run(JavaEditor.java:1385) at org.openide.util.Task.run(Task.java:136) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java :686) "Java2D Disposer" daemon prio=10 tid=0x02dcc7d8 nid=0xcb8 in Object.wait() [570f 000..570fd8c] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x10a8d998> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at sun.java2d.Disposer.run(Disposer.java:100) at java.lang.Thread.run(Thread.java:534) "AWT-Windows" daemon prio=7 tid=0x02d664c8 nid=0xcb4 runnable [527f000..527fd8c] at sun.awt.windows.WToolkit.eventLoop(Native Method) at sun.awt.windows.WToolkit.run(WToolkit.java:262) at java.lang.Thread.run(Thread.java:534) "AWT-Shutdown" prio=5 tid=0x02d661f8 nid=0xda0 in Object.wait() [523f000..523fd8 c] at java.lang.Object.wait(Native Method) - waiting on <0x10a30688> (a java.lang.Object) at java.lang.Object.wait(Object.java:429) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259) - locked <0x10a30688> (a java.lang.Object) at java.lang.Thread.run(Thread.java:534) "Active Reference Queue Daemon" daemon prio=2 tid=0x00a667e0 nid=0xd9c in Object .wait() [2fff000..2fffd8c] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x109f1580> (a java.lang.ref.ReferenceQueue$Lock) at org.openide.util.Utilities$ActiveQueue.run(Utilities.java:2353) at java.lang.Thread.run(Thread.java:534) "Thread-0" daemon prio=5 tid=0x00a68838 nid=0xd98 in Object.wait() [2fbf000..2fb fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x109f15f8> (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:429) at java.util.TimerThread.mainLoop(Timer.java:403) - locked <0x109f15f8> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:382) "CLI Requests Server" daemon prio=5 tid=0x00a57f28 nid=0xd90 runnable [2f3f000.. 2f3fd8c] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) - locked <0x109f16f0> (a java.net.PlainSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:448) at java.net.ServerSocket.accept(ServerSocket.java:419) at org.netbeans.CLIHandler$Server.run(CLIHandler.java:744) "Signal Dispatcher" daemon prio=10 tid=0x0003df98 nid=0xd84 waiting on condition [0..0] "Finalizer" daemon prio=9 tid=0x009df1a0 nid=0xd7c in Object.wait() [2bef000..2b efd8c] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x109f1898> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x009ddd70 nid=0xd78 in Object.wait() [2b af000..2bafd8c] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x109f1608> (a java.lang.ref.Reference$Lock) "VM Thread" prio=5 tid=0x00a1b6f8 nid=0x490 runnable "VM Periodic Task Thread" prio=10 tid=0x00a1c7b8 nid=0xd8c waiting on condition "Suspend Checker Thread" prio=10 tid=0x0003d650 nid=0xd80 runnable
We will integrate the Radek's fix and add the catching of FileNotFoundException in the DefaultClassPathProvider to fix the ClassPath and FS related problems. Then I will reassign this issue to javacore to fix the deadlock
Better to file a separate issue about the deadlock, to avoid confusion.
I've entered new issue for the deadlock above: http://www.netbeans.org/issues/show_bug.cgi?id=48820
Patch applied: /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileObject.java,v new revision: 1.33; previous revision: 1.32 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileObjectTestHid.java new revision: 1.14; previous revision: 1.13
Checking in j2seplatform/nbproject/project.properties; /cvs/java/j2seplatform/nbproject/project.properties,v <-- project.properties new revision: 1.9; previous revision: 1.8 done Processing log script arguments... More commits to come... Checking in j2seplatform/src/org/netbeans/modules/java/j2seplatform/platformdefinition/DefaultClassPathProvider.java; /cvs/java/j2seplatform/src/org/netbeans/modules/java/j2seplatform/platformdefinition/DefaultClassPathProvider.java,v <-- DefaultClassPathProvider.java new revision: 1.8; previous revision: 1.7 done
Patch from Tomas verified in custom 20040910.
Integrated into release40_beta2: /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileObject.java new revision: 1.32.4.1; previous revision: 1.32
Integrated into release40_beta2 Checking in src/org/netbeans/modules/java/j2seplatform/platformdefinition/DefaultClassPathProvider.java; /cvs/java/j2seplatform/src/org/netbeans/modules/java/j2seplatform/platformdefinition/DefaultClassPathProvider.java,v <-- DefaultClassPathProvider.java new revision: 1.7.4.1; previous revision: 1.7
Verified OK on 4.0 pre-beta2 build 200409160517.