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 83221 - IllegalArgumentException when adding element in Design view
Summary: IllegalArgumentException when adding element in Design view
Status: VERIFIED FIXED
Alias: None
Product: xml
Classification: Unclassified
Component: Schema Tools (show other bugs)
Version: 5.x
Hardware: PC Windows XP
: P1 blocker (vote)
Assignee: Samaresh Panda
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-22 18:34 UTC by htt
Modified: 2006-08-29 00:31 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 htt 2006-08-22 18:34:03 UTC
With trunk build 060821....

Open a new schema.
In Design view, 
  drag/drop element A.
  drag/drop element A1 on top of A.
  => everything works fine so far
In Schema view, add element B.
In Design view, drag/drop element B1 on top of B
=> NPE below and DV is blanked out with "The schema is invalid" msg
   Workaround: in Schema view, delete B => now DV is back in business.

java.lang.IllegalArgumentException: Exception during flush: 
        at
org.netbeans.modules.xml.axi.impl.ModelAccessImpl.flush(ModelAccessImpl.java:107)
        at
org.netbeans.modules.xml.xam.AbstractModel.endTransaction(AbstractModel.java:293)
        at
org.netbeans.modules.xml.xam.AbstractModel.endTransaction(AbstractModel.java:281)
        at
org.netbeans.modules.xml.schema.abe.StartTagPanel.setTagNameInModel(StartTagPanel.java:238)
        at
org.netbeans.modules.xml.schema.abe.StartTagPanel.access$200(StartTagPanel.java:67)
        at
org.netbeans.modules.xml.schema.abe.StartTagPanel$2$1.actionPerformed(StartTagPanel.java:208)
        at javax.swing.JTextField.fireActionPerformed(JTextField.java:487)
        at javax.swing.JTextField.postActionEvent(JTextField.java:700)
        at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:815)
        at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1634)
        at javax.swing.JComponent.processKeyBinding(JComponent.java:2824)
        at javax.swing.JComponent.processKeyBindings(JComponent.java:2859)
        at javax.swing.JComponent.processKeyEvent(JComponent.java:2787)
        at java.awt.Component.processEvent(Component.java:5776)
        at java.awt.Container.processEvent(Container.java:1984)
        at java.awt.Component.dispatchEventImpl(Component.java:4407)
        at java.awt.Container.dispatchEventImpl(Container.java:2042)
        at java.awt.Component.dispatchEvent(Component.java:4237)
        at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1828)
        at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:693)
        at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:952)
        at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:824)
        at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:657)
        at java.awt.Component.dispatchEventImpl(Component.java:4279)
        at java.awt.Container.dispatchEventImpl(Container.java:2042)
        at java.awt.Window.dispatchEventImpl(Window.java:2405)
        at java.awt.Component.dispatchEvent(Component.java:4237)
[catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:600)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.lang.NullPointerException
        at org.netbeans.modules.xml.axi.impl.Util.modifyElementRef(Util.java:1432)
        at
org.netbeans.modules.xml.axi.impl.Util.modifySchemaComponent(Util.java:1182)
        at
org.netbeans.modules.xml.axi.impl.DefaultSchemaGenerator.updateSchema(DefaultSchemaGenerator.java:119)
        at
org.netbeans.modules.xml.axi.impl.SchemaGeneratorFactoryImpl.updateSchema(SchemaGeneratorFactoryImpl.java:63)
        at
org.netbeans.modules.xml.axi.impl.ModelAccessImpl.flush(ModelAccessImpl.java:105)
        ... 33 more
Comment 1 Samaresh Panda 2006-08-22 23:08:59 UTC
I just tried this with my local build which i built this morning. I'm unable to
reproduce the same.

In the scenario where you mentioned "In Schema view, add element B." I'm
assuming you meant add element B to the schema and not to element A nor A1. Also
the new element dialog by default, selects "Inline Complex Type".

Given all this I'm able to drop a new elemenent on top of B which was added in
SV. However, the DV didn't let me edit the name. Normally it does when you drop.

Anyway, the schema now looks like this:
...
    <xsd:element name="A">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="A1"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="B">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="tns:NewElement01"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="NewElement01"/>
...

There is no NPE, nor IAE. I'm not closing this bug. Please try again with some
newer build and let me know.
Comment 2 Samaresh Panda 2006-08-23 21:39:22 UTC
Works for me. I just verified with my local build, built from updated source.
Comment 3 htt 2006-08-23 23:15:04 UTC
With trunk build 060822,

Create a Java App
Open a newXMLschema.
In DV, d/d an element (NewElement01)
       d/d an element on top of it (NewElement01)
=> now we have: NewElement01
                sequence
                   NewElement01

In Schema view, right-click Elements, select Add Element (newElement)
In DV,
  we now see: NewElement01
              sequence
                NewElement01
              newElement

  d/d an element on top of newElement
  => observe: NewElement01
              sequence
                NewElement01
              newElement
              NewElement01_1

  double-click on NewElement01_1 to rename it; <CR>
  => NPE and screen blanks out with "Schema is invalid"

In short, there're 4 issues:
o NewElement01_1 is dropped in the wrong location
o NewElement01_1 is not auto-hilited for renaming
o NPE
o "Schema is invalid"


Comment 4 Samaresh Panda 2006-08-24 01:30:36 UTC
This is better. The original report didn't mention anything about renaming an
element.
Comment 5 Samaresh Panda 2006-08-26 00:46:30 UTC
Need to silently refactor when someone renames a GCT or global something.

Committing "XML Refactoring"
Checking in project.xml; new revision: 1.1.2.18;

"Abstract XML Instance Object Model (AXIOM)" finished
Checking in nbproject/project.xml; new revision: 1.1.2.6;
Checking in nbproject/project.properties; new revision: 1.1.2.7;
Checking in impl/AXIModelImpl.java; new revision: 1.1.2.25;
Checking in impl/AXIModelListener.java; new revision: 1.1.2.3;
Checking in impl/OtherAXIModelListener.java; new revision: 1.1.2.1;
Checking in AXIComponent.java; new revision: 1.1.2.55;
Comment 6 Samaresh Panda 2006-08-26 17:00:55 UTC
Please verify with new build.
Comment 7 htt 2006-08-29 00:31:42 UTC
Verified in trunk build 060827.  All major issues are fixed; will open a new
issue for the minor one.