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 57170 - [gjast] Enum enheritance leads to complete IDE crash
Summary: [gjast] Enum enheritance leads to complete IDE crash
Status: RESOLVED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Unsupported (show other bugs)
Version: 4.x
Hardware: PC Windows XP
: P3 blocker (vote)
Assignee: Tomas Hurka
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-03-30 09:49 UTC by randahl
Modified: 2007-09-26 09: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 randahl 2005-03-30 09:49:50 UTC
Version: q-build of March 15th
Steps to reproduce:

1. Create an abstract class in one source file
2. Create an enum in another source file which extends the abstract class
3. Compile
4. MDR module throws various exceptions like the ones below
5. The IDE becomes unresponsive - an exception is thrown no matter what you do.

I am filing this as a P1, since syntactically correct Java code makes the IDE
installation crash completely and for good - even restarting the IDE does not
correct this. Workarround: Delete the "\dev\var\cache\mdrstorage" folder.

Randahl




*********** Exception occurred ************ at 3:12 PM on Mar 28, 2005
Annotation: Exception occurred in Request Processor
java.lang.NullPointerException
	at org.netbeans.modules.javacore.parser.MDRParser.processAST(MDRParser.java:429)
	at org.netbeans.modules.javacore.parser.MDRParser.processAST(MDRParser.java:364)
	at org.netbeans.modules.javacore.parser.MDRParser.processAST(MDRParser.java:326)
	at org.netbeans.modules.javacore.parser.MDRParser.processAST(MDRParser.java:304)
java.lang.NullPointerException
	at org.netbeans.lib.gjast.ASEnumDef.makeEnumBodyDeclarations(ASEnumDef.java:88)
	at org.netbeans.lib.gjast.ASEnumDef.makeSubTrees(ASEnumDef.java:65)
	at org.netbeans.lib.gjast.ASClassDef.<init>(ASClassDef.java:23)
	at org.netbeans.lib.gjast.ASEnumDef.<init>(ASEnumDef.java:16)
	at org.netbeans.lib.gjast.ASTreeMaker.ClassDef(ASTreeMaker.java:92)
	at com.sun.tools.javac.parser.Parser.enumDeclaration(Parser.java:2336)
	at
com.sun.tools.javac.parser.Parser.classOrInterfaceOrEnumDeclaration(Parser.java:2260)
	at com.sun.tools.javac.parser.Parser.typeDeclaration(Parser.java:2248)
	at com.sun.tools.javac.parser.Parser.compilationUnit(Parser.java:2181)
	at org.netbeans.lib.gjast.ASParser$ParseEngine.parse(ASParser.java:365)
	at org.netbeans.lib.gjast.ASParser$ParseEngine.compile(ASParser.java:303)
	at org.netbeans.lib.gjast.ASParser$ParseEngine.parse(ASParser.java:249)
	at org.netbeans.lib.gjast.ASParser.parse(ASParser.java:78)
	at
org.netbeans.modules.javacore.parser.ASTProvider.createASTree(ASTProvider.java:87)
	at org.netbeans.modules.javacore.parser.ASTProvider.getASTree(ASTProvider.java:152)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.directUpdate(ResourceImpl.java:658)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.checkUpToDate(ResourceImpl.java:605)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.checkUpToDate(ResourceImpl.java:557)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initResource(ResourceImpl.java:397)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initCheck(MetadataElement.java:133)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.getElementInfo(SemiPersistentElement.java:182)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChildren(ResourceImpl.java:298)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChildren(ResourceImpl.java:292)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initCheck(MetadataElement.java:139)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.checkUpToDate(SemiPersistentElement.java:266)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaEnumImpl.getConstants(JavaEnumImpl.java:110)
	at org.netbeans.jmi.javamodel.JavaEnum$Impl.getConstants(Unknown Source)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaEnumImpl$MergedFeaturesList.size(JavaEnumImpl.java:355)
	at java.util.AbstractCollection.toArray(AbstractCollection.java:123)
	at java.util.LinkedList.addAll(LinkedList.java:265)
	at java.util.LinkedList.addAll(LinkedList.java:242)
	at java.util.LinkedList.<init>(LinkedList.java:98)
	at
org.netbeans.modules.javanavigation.JUtils.addInnerClassMembers(JUtils.java:1315)
	at org.netbeans.modules.javanavigation.JUtils.getClassMembers(JUtils.java:1272)
	at
org.netbeans.modules.javanavigation.ClassMemberModel.loadContents(ClassMemberModel.java:237)
	at
org.netbeans.modules.navigator.spi.ListModelSupport$Loader.run(ListModelSupport.java:941)
	at org.openide.util.Task.run(Task.java:189)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:721)
	at org.netbeans.modules.javacore.parser.MDRParser.enterMembers(MDRParser.java:234)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.directUpdate(ResourceImpl.java:692)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.checkUpToDate(ResourceImpl.java:605)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.checkUpToDate(ResourceImpl.java:557)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initResource(ResourceImpl.java:397)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initCheck(MetadataElement.java:133)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.getElementInfo(SemiPersistentElement.java:182)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.getInternalForm(SemiPersistentElement.java:802)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getASTree(MetadataElement.java:451)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.getParser(SemiPersistentElement.java:797)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.getFeaturePosition(ResourceImpl.java:427)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.FeatureImpl.getPosition(FeatureImpl.java:271)
	at org.netbeans.modules.javacore.JMManager.getElementPosition(JMManager.java:681)
	at org.netbeans.modules.javacore.JMManager.getElementPosition(JMManager.java:672)
	at org.netbeans.modules.editor.java.JMIUtils$4.run(JMIUtils.java:906)
	at org.openide.util.Task.run(Task.java:189)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330)
Comment 1 Martin Matula 2005-03-30 11:38:24 UTC
Enum cannot extend anything - it implicitly extends java.lang.Enum, so the code
*is not* syntactically correct -> lowering to P3.
The problem seems to be in the parser. Tomas, please look at it.
Comment 2 Tomas Hurka 2005-04-01 14:07:33 UTC
Fixed in trunk.
Checking in gjast.jar.scrambled;
/cvs/java/external/gjast.jar.scrambled,v  <--  gjast.jar.scrambled
new revision: 1.104; previous revision: 1.103
done
Comment 3 Quality Engineering 2007-09-20 10:59:14 UTC
Reorganization of java component