Checkout command executed for mounted CVS FS with
relative mount point pointing on dir containing
web module results in broken/inaccessible web
module and the entire file system. Any click on
the FS or WM nodes causes IllegalStateException.
How to reproduce:
1. Start IDE
2. Create Web Module and put it into CVS
repository in some CVS module/directory (NOT in
the top dir of the CVS repository).
3. Mount this CVS repository to some EMPTY working
directory as generic VCS CVS FS and point this web
module dir as a relative mount point (see snapshot
for details)
4. Run checkout command on this FS and observe the
exception; also notice that this exception appears
each time when you click on FS or WM node after
checkout is finished:
Annotation: Exception occurred in Request Processor
java.lang.IllegalStateException
at
org.netbeans.modules.web.context.WebContextObject.getClassesBase(WebContextObject.java:1065)
at
org.netbeans.modules.web.context.WebClassesObject.ensureRoot(WebClassesObject.java:50)
at
org.netbeans.modules.web.context.WebClassesObject.createNodeDelegate(WebClassesObject.java:70)
at
org.openide.loaders.DataObject$1.run(DataObject.java:242)
at org.openide.util.Mutex.readAccess(Mutex.java:239)
at
org.openide.loaders.DataObject.getNodeDelegate(DataObject.java:238)
at
org.openide.loaders.DataFolder.getClonedNodeDelegate(DataFolder.java:414)
at
org.openide.loaders.FolderChildren.createNodes(FolderChildren.java:132)
at
org.openide.nodes.Children$Keys$KE.nodes(Children.java:1978)
at
org.openide.nodes.ChildrenArray.nodesFor(ChildrenArray.java:109)
at
org.openide.nodes.Children$Info.nodes(Children.java:1072)
at
org.openide.nodes.Children.updateAdd(Children.java:880)
at
org.openide.nodes.Children.setEntries(Children.java:667)
at
org.openide.nodes.Children$3.run(Children.java:1869)
at org.openide.util.Mutex.postRequest(Mutex.java:875)
at
org.openide.util.Mutex.postWriteRequest(Mutex.java:375)
at
org.openide.nodes.Children$Keys.applyKeys(Children.java:1877)
at
org.openide.nodes.Children$Keys.setKeys(Children.java:1836)
at
org.openide.loaders.FolderChildren.access$501(FolderChildren.java:32)
at
org.openide.loaders.FolderChildren$ChildrenRefreshRunnable.run(FolderChildren.java:250)
at org.openide.util.Task.run(Task.java:136)
at
org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:328)
[catch] at
org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:668)
Note that this is remnant of bug 4836055 where we
fixed deadlock that was not reproducible in
NetBeans but still there are cases when this
expection is thrown.
Workaround is to remount the filesystem.