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.
Summary: | Deadlock after push on project's node context menu "Deploy" | ||
---|---|---|---|
Product: | javaee | Reporter: | Marian Mirilovic <mmirilovic> |
Component: | JSP | Assignee: | Marek Fukala <mfukala> |
Status: | CLOSED FIXED | ||
Severity: | blocker | ||
Priority: | P2 | ||
Version: | 6.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | DEFECT | Exception Reporter: | |
Attachments: | thread-dump |
Description
Marian Mirilovic
2009-07-31 10:41:39 UTC
Created attachment 85602 [details]
thread-dump
"org.openide.text Document Processing" CloneableEditorSupport fires state change event under document atomic lock. BaseJspEditorSupport$3.stateChanged() is called as a state change listener and inside tries to get document from the support: CloneableEditorSupport.getDocument() which requires CloneableEditorSupport.getLock() while "Versioning long tasks" calls CloneableEditorSupport.doCloseDocument() which under CloneableEditorSupport.getLock() triggers PositionRef$Manager$DocumentRenderer.render() which tries to get a document readlock. Looks like BaseJspEditorSupport is not supposed to call CES.getDocument() from within the even handler. Just for curiosity the code hasn't changed for ages so this looks like pretty uncommon race condition. Looks like can be fixed by removing the state listener (listening for opened files) and replacing it by overriding CES.open(). I'll fix it next week after M1 clone. fixed in web-main#66c1cbf67d4a Integrated into 'main-golden', will be available in build *200908060201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-golden/rev/66c1cbf67d4a User: Marek Fukala <mfukala@netbeans.org> Log: #169631 - Deadlock after push on project's node context menu "Deploy" no more reproducible |