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 126593 - *Find Usages*: Usages View throws AssertionError if project was deleted
Summary: *Find Usages*: Usages View throws AssertionError if project was deleted
Status: VERIFIED FIXED
Alias: None
Product: cnd
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Vladimir Voskresensky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-02-04 08:33 UTC by dnikitin
Modified: 2008-02-19 13:14 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description dnikitin 2008-02-04 08:33:04 UTC
Product Version: NetBeans IDE Dev (Build 200802040003)
Java: 1.6.0_03; Java HotSpot(TM) Client VM 1.6.0_03-b05
System: Linux version 2.6.20-16-generic running on i386; UTF-8; en_US (nb)
-------------------------------------------------------------------

to reproduce:
1) invoke 'Find Usages' for argv in Welcome project
==> 'Usages' view appears
2) delete Welcome project with the sources
3) click 'Show Logical View' on Usages view
==>


java.lang.AssertionError: can't be null declaration
	at org.netbeans.modules.cnd.completion.csm.CsmDeclarationResolver.findInnerDeclaration(CsmDeclarationResolver.java:128)
	at org.netbeans.modules.cnd.completion.csm.CsmDeclarationResolver.findInnerFileObject(CsmDeclarationResolver.java:114)
	at org.netbeans.modules.cnd.completion.csm.CsmOffsetResolver.findObjectWithContext(CsmOffsetResolver.java:101)
	at org.netbeans.modules.cnd.completion.csm.CsmOffsetResolver.findObject(CsmOffsetResolver.java:90)
	at org.netbeans.modules.cnd.completion.impl.xref.ReferencesSupport.findOwnerObject(ReferencesSupport.java:122)
	at org.netbeans.modules.cnd.completion.impl.xref.ReferenceImpl.getOwner(ReferenceImpl.java:75)
	at org.netbeans.modules.cnd.refactoring.support.CsmRefactoringUtils.getEnclosingElement(CsmRefactoringUtils.java:196)
	at org.netbeans.modules.cnd.refactoring.ui.tree.RefactoringTreeElement.getCsmParent(RefactoringTreeElement.java:96)
	at org.netbeans.modules.cnd.refactoring.ui.tree.RefactoringTreeElement.getParent(RefactoringTreeElement.java:70)
	at org.netbeans.modules.refactoring.spi.impl.RefactoringPanel.createNode(RefactoringPanel.java:434)
	at org.netbeans.modules.refactoring.spi.impl.RefactoringPanel.access$800(RefactoringPanel.java:86)
	at org.netbeans.modules.refactoring.spi.impl.RefactoringPanel$5.run(RefactoringPanel.java:684)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)
Comment 1 Vladimir Voskresensky 2008-02-05 13:40:56 UTC
fixed.
check valid state of reference

log:  http://hg.netbeans.org/main?cmd=changeset;node=8a9140e6af08
Comment 2 dnikitin 2008-02-06 14:09:23 UTC
to reproduce:

1) Open disk.cpp in Quote project
2) invoke "Find Usages" for GetType() 66:23
3) click "Show Logical View" on Usage view and double-click on leaf-node
4) switch back to Physical View
5) delete Quote project
6) click 'Show Logical View' on Usage view
==>

java.lang.AssertionError: can't be null declaration
	at org.netbeans.modules.cnd.refactoring.support.CsmRefactoringUtils.findInnerDeclaration(CsmRefactoringUtils.java:400)
	at org.netbeans.modules.cnd.refactoring.support.CsmRefactoringUtils.findInnerFileObject(CsmRefactoringUtils.java:388)
	at org.netbeans.modules.cnd.refactoring.support.CsmRefactoringUtils.findInnerFileObject(CsmRefactoringUtils.java:437)
	at org.netbeans.modules.cnd.refactoring.support.CsmRefactoringUtils.getEnclosingElement(CsmRefactoringUtils.java:199)
	at org.netbeans.modules.cnd.refactoring.ui.tree.RefactoringTreeElement.getCsmParent(RefactoringTreeElement.java:97)
	at org.netbeans.modules.cnd.refactoring.ui.tree.RefactoringTreeElement.getParent(RefactoringTreeElement.java:71)
	at org.netbeans.modules.refactoring.spi.impl.RefactoringPanel.createNode(RefactoringPanel.java:434)
	at org.netbeans.modules.refactoring.spi.impl.RefactoringPanel.access$800(RefactoringPanel.java:86)
	at org.netbeans.modules.refactoring.spi.impl.RefactoringPanel$5.run(RefactoringPanel.java:684)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)


I think the best solution is to clear (and close) Usage view if the project have been deleted.

Comment 3 Vladimir Voskresensky 2008-02-18 17:00:43 UTC
fixed:
- use container for removed objects

log:  
http://hg.netbeans.org/main?cmd=changeset;node=0cf9c565b6bb
http://hg.netbeans.org/main?cmd=changeset;node=b8487de063f3

P.S. we can not close once displayed tabs, this is request to NB
Comment 4 dnikitin 2008-02-19 13:14:15 UTC
Verified in NetBeans IDE Dev (Build 200802190005)