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 48171 - NullPointerException parsing enums
Summary: NullPointerException parsing enums
Status: CLOSED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Unsupported (show other bugs)
Version: 4.x
Hardware: All All
: P1 blocker (vote)
Assignee: issues@java
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-08-30 14:53 UTC by cberger
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 cberger 2004-08-30 14:53:43 UTC
I basically cannot type or set the main class
without the following exception coming up.

Annotation: Exception occurred in Request Processor
java.lang.NullPointerException
	at
org.netbeans.modules.javacore.parser.EnumInfoMeasure.getDistance(EnumInfoMeasure.java:48)
	at
org.netbeans.modules.javacore.parser.ArrayMapper.getDistance(ArrayMapper.java:195)
	at
org.netbeans.modules.javacore.parser.ArrayMapper.mapArray(ArrayMapper.java:120)
	at
org.netbeans.modules.javacore.parser.ArrayMapper.getMap(ArrayMapper.java:48)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.processMembers(SemiPersistentElement.java:419)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.processPersistent(SemiPersistentElement.java:396)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.matchPersistent(JavaClassImpl.java:464)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.setElementInfo(SemiPersistentElement.java:94)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChildren(ResourceImpl.java:281)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChildren(ResourceImpl.java:258)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initCheck(MetadataElement.java:129)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.getElementInfo(SemiPersistentElement.java:144)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.initChildren(JavaClassImpl.java:534)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.initASTElements(JavaClassImpl.java:913)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.getInterfaceNames(JavaClassImpl.java:905)
	at
org.netbeans.jmi.javamodel.JavaClass$Impl.getInterfaceNames(Unknown
Source)
	at
org.netbeans.modules.java.bridge.ClassElementImpl$InterfacesListener.getTypeRefs(ClassElementImpl.java:1024)
	at
org.netbeans.modules.java.bridge.CallableImpl$ExceptionsListener.initElements(CallableImpl.java:585)
	at
org.netbeans.modules.java.bridge.ClassElementImpl$ClassListener.connect(ClassElementImpl.java:874)
	at
org.netbeans.modules.java.bridge.ClassElementImpl.connectListener(ClassElementImpl.java:98)
	at
org.netbeans.modules.java.bridge.ElementImpl.attachedToElement(ElementImpl.java:439)
	at org.openide.src.Element.<init>(Element.java:56)
	at
org.openide.src.MemberElement.<init>(MemberElement.java:36)
	at
org.openide.src.ClassElement.<init>(ClassElement.java:93)
	at
org.openide.src.ClassElement.<init>(ClassElement.java:84)
	at
org.netbeans.modules.java.bridge.DefaultWrapper.wrapClass(DefaultWrapper.java:34)
	at
org.netbeans.modules.java.bridge.DefaultLangModel.createTopClass(DefaultLangModel.java:159)
	at
org.netbeans.modules.java.bridge.TopClassesCollection.createElement(TopClassesCollection.java:60)
	at
org.netbeans.modules.java.bridge.ObjectsCollection.cachedElement(ObjectsCollection.java:74)
	at
org.netbeans.modules.java.bridge.ObjectsCollection.getElements(ObjectsCollection.java:106)
	at
org.netbeans.modules.java.bridge.ClassesCollection.getClasses(ClassesCollection.java:72)
	at
org.netbeans.modules.java.bridge.SourceElementImpl.getClasses(SourceElementImpl.java:144)
	at
org.netbeans.modules.java.bridge.SrcElementImpl.getClasses(SrcElementImpl.java:170)
	at
org.openide.src.SourceElement.getClasses(SourceElement.java:227)
	at
org.netbeans.modules.java.j2seproject.ui.customizer.MainClassChooser.getMainMethod(MainClassChooser.java:171)
	at
org.netbeans.modules.java.j2seproject.ui.customizer.MainClassChooser.hasMainMethod(MainClassChooser.java:200)
	at
org.netbeans.modules.java.j2seproject.ui.customizer.MainClassChooser.getAllMainClasses(MainClassChooser.java:119)
	at
org.netbeans.modules.java.j2seproject.ui.customizer.MainClassChooser.access$000(MainClassChooser.java:48)
	at
org.netbeans.modules.java.j2seproject.ui.customizer.MainClassChooser$1.run(MainClassChooser.java:73)
	at org.openide.util.Task.run(Task.java:136)
	at
org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330)
[catch] at
org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:686)
Comment 1 cberger 2004-08-30 14:55:11 UTC
Problematic file:

/*
 * ConfDatabase.java
 *
 * Created on August 17, 2004, 5:16 PM
 */

package wni.noc.dbsync;
import java.util.*;
import java.util.regex.*;

/**
 *
 * @author  cedric
 */
public class Config {
    
    SortedMap<String,Database> databases
        = new TreeMap<String,Database>();
    SortedMap<String,Design> designs
        = new TreeMap<String,Design>();
    
    public static class Database {
        String name;
        String driver;
        String url;
        String login;
        String passwd;
        String design;
    }

    public static class Design {
        String name;
        SortedMap<String,Schema> schemas = new TreeMap<String,Schema>();
    }

    public static class Schema {
        String name;
        List<SchemaSpec> specs = new LinkedList<SchemaSpec>();
    }

    public enum SchemaAction {
        NODATA
    };

    public static class SchemaSpec {
        SchemaAction action;
        Pattern pattern;
        public SchemaSpec(SchemaAction action, Pattern pattern) {
            this.action = action;
            this.pattern = pattern;
        }
    }
}
Comment 2 cberger 2004-08-30 14:57:56 UTC
NetBeans 4.0_beta1
Comment 3 cberger 2004-08-30 15:03:48 UTC
I removed the Enum, replaced it by int constant. Now I get that:
ARGHHHHHHHHHH

Annotation: Exception occurred in Request Processor
javax.jmi.reflect.InvalidObjectException: Object with MOFID
EA0D062E-FA56-11D8-A9C6-3E245D5DAA77:0000000000000FDE no longer exists.
	at
org.netbeans.mdr.handlers.BaseObjectHandler._getDelegate(BaseObjectHandler.java:322)
	at
org.netbeans.mdr.storagemodel.AttrCollection.clearAttribComposite(AttrCollection.java:268)
	at
org.netbeans.mdr.storagemodel.AttrCollection.remove(AttrCollection.java:214)
	at
org.netbeans.mdr.handlers.AttrCollWrapper.remove(AttrCollWrapper.java:98)
	at
org.netbeans.mdr.handlers.AttrCollWrapper.clear(AttrCollWrapper.java:62)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.LightAttrList.clear(LightAttrList.java:257)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.processMembers(SemiPersistentElement.java:423)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.processPersistent(SemiPersistentElement.java:390)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.matchPersistent(JavaClassImpl.java:464)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.setElementInfo(SemiPersistentElement.java:94)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.setAnyElementInfo(SemiPersistentElement.java:552)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.processMembers(SemiPersistentElement.java:449)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.matchElementInfo(ResourceImpl.java:206)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement.setElementInfo(SemiPersistentElement.java:97)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.directUpdate(ResourceImpl.java:560)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.checkUpToDate(ResourceImpl.java:464)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.updateFromDataObject(ResourceImpl.java:374)
	at
org.netbeans.modules.javacore.ExclusiveMutex.parseIfNeeded(ExclusiveMutex.java:214)
	at
org.netbeans.modules.javacore.ExclusiveMutex.enter(ExclusiveMutex.java:133)
	at
org.netbeans.mdr.NBMDRepositoryImpl.beginTrans(NBMDRepositoryImpl.java:232)
	at org.netbeans.modules.java.JavaEditor$2.run(JavaEditor.java:225)
	at org.openide.util.Task.run(Task.java:136)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330)
[catch] at
org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:686)
Comment 4 Tomas Hurka 2004-08-30 15:55:10 UTC
Already fixed by Martin.

java/javacore/src/org/netbeans/modules/javacore/parser/EnumInfoMeasure.java
revision 1.5
date: 2004/08/13 13:50:01;  author: mmatula;  state: Exp;  lines: +1 -3
Comment 5 Jiri Prox 2005-07-12 10:15:53 UTC
Verified in 4.2 (200507110943)
Comment 6 Quality Engineering 2007-09-20 10:52:45 UTC
Reorganization of java component