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.
Trunk build 090312. I have some simple code which allows me to define a project template in a properties file (relative/path/in/project=sfs/path/to/template). I am using FreeMarker for templating. With ergonomics disabled, this works fine. With ergonomics enabled, project creation fails with the exception below. First there is the following warning: WARNING [org.openide.loaders]: Should override getLookup() in class org.netbeans.modules.ide.ergonomics.fod.FodDataObjectFactory$Cookies, e.g.: [MultiDataObject.this.]getCookieSet().getLookup() Then I get the exception below. I must hold ProjectManager.mutex() while creating a project on disk. But if ergonomics is enabled, the code that looks up the file encoding calls the default DataObject.getLookup() which invokes getNodeDelegate().getLookup() - and acquires Children.MUTEX, causing the exception. I must not create the project outside of ProjectManager.mutex(), and I cannot instantiate a template inside ProjectManager.mutex()... == I cannot create a project. Probably either having FodDataObjectFactory's DataObjects properly override getLookup(), or creating some code path to query file encoding would solve the problem. But I wonder how many more problems like this there are. java.lang.IllegalStateException: Should not acquire Children.MUTEX while holding ProjectManager.mutex() at org.openide.nodes.Children$ProjectManagerDeadlockDetector.execute(Children.java:1805) at org.openide.util.Mutex.doWrapperAccess(Mutex.java:1320) at org.openide.util.Mutex.readAccess(Mutex.java:351) at org.openide.loaders.DataObject.getNodeDelegateImpl(DataObject.java:281) at org.openide.loaders.DataObject.getLookup(DataObject.java:1010) at org.netbeans.modules.openide.loaders.DataObjectEncodingQueryImplementation.getEncoding(DataObjectEncodingQueryImplementation.java:111) at org.netbeans.api.queries.FileEncodingQuery.getEncoding(FileEncodingQuery.java:91) at org.netbeans.modules.templates.ScriptingCreateFromTemplateHandler.createFromTemplate(ScriptingCreateFromTemplateHandler.java:80) at org.openide.loaders.MultiDataObject.handleCreateFromTemplate(MultiDataObject.java:711) at org.openide.loaders.DataObject$CreateAction.run(DataObject.java:1285) at org.openide.loaders.DataObjectPool$1WrapAtomicAction.run(DataObjectPool.java:258) at org.openide.filesystems.EventControl.runAtomicAction(EventControl.java:120) at org.openide.filesystems.FileSystem.runAtomicAction(FileSystem.java:509) at org.openide.loaders.DataObjectPool.runAtomicAction(DataObjectPool.java:270) at org.openide.loaders.DataObject.invokeAtomicAction(DataObject.java:873) at org.openide.loaders.DataObject.createFromTemplate(DataObject.java:805) at org.netbeans.modules.javacard.wizard.JavacardProjectGenerator$FileEntry.create(JavacardProjectGenerator.java:223) at org.netbeans.modules.javacard.wizard.JavacardProjectGenerator.doCreateProject(JavacardProjectGenerator.java:102) at org.netbeans.modules.javacard.wizard.JavacardProjectGenerator.access$000(JavacardProjectGenerator.java:42) at org.netbeans.modules.javacard.wizard.JavacardProjectGenerator$1$1.run(JavacardProjectGenerator.java:75) at org.netbeans.modules.javacard.wizard.JavacardProjectGenerator$1$1.run(JavacardProjectGenerator.java:72) at org.openide.util.Mutex.writeAccess(Mutex.java:433) at org.netbeans.modules.javacard.wizard.JavacardProjectGenerator$1.run(JavacardProjectGenerator.java:72) at org.openide.filesystems.EventControl.runAtomicAction(EventControl.java:120) at org.openide.filesystems.FileSystem.runAtomicAction(FileSystem.java:509) at org.netbeans.modules.javacard.wizard.JavacardProjectGenerator.createProject(JavacardProjectGenerator.java:67) at org.netbeans.modules.javacard.wizard.ProjectWizardIterator.instantiate(ProjectWizardIterator.java:118) at org.openide.loaders.TemplateWizard$InstantiatingIteratorBridge.instantiate(TemplateWizard.java:1016) at org.openide.loaders.TemplateWizard.handleInstantiate(TemplateWizard.java:588) at org.openide.loaders.TemplateWizard.instantiateNewObjects(TemplateWizard.java:409) at org.openide.loaders.TemplateWizardIterImpl.instantiate(TemplateWizardIterImpl.java:253) at org.openide.loaders.TemplateWizardIteratorWrapper.instantiate(TemplateWizardIteratorWrapper.java:165) at org.openide.WizardDescriptor.callInstantiateOpen(WizardDescriptor.java:1513) at org.openide.WizardDescriptor.callInstantiate(WizardDescriptor.java:1470) at org.openide.WizardDescriptor.access$1700(WizardDescriptor.java:121) at org.openide.WizardDescriptor$Listener$2$1.run(WizardDescriptor.java:2041) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:573) [catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1005)
*** This issue has been marked as a duplicate of 160237 ***