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 80289 - Applying Design Pattern makes schema invalid
Summary: Applying Design Pattern makes schema invalid
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: Ayub Khan
URL:
Keywords:
: 80534 80600 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-07-14 12:28 UTC by Andrei Chistiakov
Modified: 2006-07-27 12:35 UTC (History)
5 users (show)

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 Andrei Chistiakov 2006-07-14 12:28:35 UTC
Reproduced in build 060712.

To reproduce the bug:

- open PO schema;
- switch to source view;
- invoke 'Apply Design Pattern' on it;
- validate the schema. It results in:
XML validation started.
src-simple-type.2.b: A <restriction> element was found that has neither a base
[attribute] nor a <simpleType> element among its [children]. One is required. [110] 
src-resolve: Cannot resolve the name 'comment' to a(n) 'element declaration'
component. [16] 
src-resolve: Cannot resolve the name 'comment' to a(n) 'element declaration'
component. [48] 
XML validation finished.
- close the schema and discard changes;
NPE is thrown:
java.lang.NullPointerException
	at
org.netbeans.modules.xml.xam.dom.AbstractDocumentModel.removeChildComponent(AbstractDocumentModel.java:289)
	at
org.netbeans.modules.xml.xam.dom.AbstractDocumentModel.processSyncUnit(AbstractDocumentModel.java:263)
	at org.netbeans.modules.xml.xdm.xam.XDMListener.endSync(XDMListener.java:80)
	at org.netbeans.modules.xml.xdm.xam.XDMAccess.sync(XDMAccess.java:122)
	at org.netbeans.modules.xml.xam.AbstractModel.sync(AbstractModel.java:216)
	at
org.netbeans.modules.xml.schema.core.SchemaEditorSupport.syncModel(SchemaEditorSupport.java:455)
	at
org.netbeans.modules.xml.schema.core.SchemaEditorSupport$CloseHandler.resolveCloseOperation(SchemaEditorSupport.java:540)
	at org.netbeans.core.multiview.MultiViewPeer.canClose(MultiViewPeer.java:483)
	at
org.netbeans.core.multiview.MultiViewCloneableTopComponent.canClose(MultiViewCloneableTopComponent.java:289)
	at org.netbeans.core.windows.Central.removeModeTopComponent(Central.java:732)
	at org.netbeans.core.windows.Central.userClosedTopComponent(Central.java:1545)
	at
org.netbeans.core.windows.view.DefaultView.userClosedTopComponent(DefaultView.java:730)
	at
org.netbeans.core.windows.view.ui.TabbedHandler.actionPerformed(TabbedHandler.java:298)
	at
org.netbeans.swing.tabcontrol.TabbedContainer.postActionEvent(TabbedContainer.java:664)
	at
org.netbeans.swing.tabcontrol.TabbedContainerUI.shouldPerformAction(TabbedContainerUI.java:140)
	at
org.netbeans.swing.tabcontrol.plaf.DefaultTabbedContainerUI.access$2600(DefaultTabbedContainerUI.java:86)
	at
org.netbeans.swing.tabcontrol.plaf.DefaultTabbedContainerUI$DisplayerActionListener.actionPerformed(DefaultTabbedContainerUI.java:1235)
	at
org.netbeans.swing.tabcontrol.TabDisplayer.postActionEvent(TabDisplayer.java:519)
	at
org.netbeans.swing.tabcontrol.TabDisplayerUI.shouldPerformAction(TabDisplayerUI.java:150)
	at
org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI.access$1500(BasicTabDisplayerUI.java:80)
	at
org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI$BasicDisplayerMouseListener.performCommand(BasicTabDisplayerUI.java:693)
	at
org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI$BasicDisplayerMouseListener.potentialCommand(BasicTabDisplayerUI.java:678)
	at
org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI$BasicDisplayerMouseListener.mouseReleased(BasicTabDisplayerUI.java:726)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
	at java.awt.Component.processMouseEvent(Component.java:5999)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3240)
	at java.awt.Component.processEvent(Component.java:5764)
	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.LightweightDispatcher.retargetMouseEvent(Container.java:4248)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3912)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3842)
	at java.awt.Container.dispatchEventImpl(Container.java:2028)
	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)
Comment 1 Nam Nguyen 2006-07-15 00:05:15 UTC
From my latest code, I got this stack.  My guess is that axim sync somehow
remove a (shared) child more than once hence the NPE on null model.  The fix is
in axim sync or somehow avoid sync on discard-closing of design view.


java.lang.NullPointerException
	at
org.netbeans.modules.xml.xam.AbstractComponent.verifyWrite(AbstractComponent.java:179)
	at
org.netbeans.modules.xml.xam.AbstractComponent.removeChild(AbstractComponent.java:334)
	at
org.netbeans.modules.xml.axi.AXIComponent.removeSharedChild(AXIComponent.java:425)
	at
org.netbeans.modules.xml.axi.AXIComponent.removeSharedChild(AXIComponent.java:431)
	at
org.netbeans.modules.xml.axi.AXIComponent.removeSharedChild(AXIComponent.java:431)
	at org.netbeans.modules.xml.axi.AXIComponent.removeChild(AXIComponent.java:399)
	at org.netbeans.modules.xml.axi.AXIComponent.removeChild(AXIComponent.java:452)
	at
org.netbeans.modules.xml.axi.impl.AXIModelUpdater.removeChildren(AXIModelUpdater.java:225)
	at
org.netbeans.modules.xml.axi.impl.AXIModelUpdater.synchronize(AXIModelUpdater.java:194)
	at
org.netbeans.modules.xml.axi.impl.AXIModelUpdater.visitChildren(AXIModelUpdater.java:180)
	at
org.netbeans.modules.xml.axi.visitor.DeepAXITreeVisitor.visit(DeepAXITreeVisitor.java:54)
	at org.netbeans.modules.xml.axi.AXIDocument.accept(AXIDocument.java:56)
	at
org.netbeans.modules.xml.axi.impl.AXIModelUpdater.doSync(AXIModelUpdater.java:76)
	at org.netbeans.modules.xml.axi.impl.AXIModelImpl.doSync(AXIModelImpl.java:136)
	at org.netbeans.modules.xml.axi.impl.ModelAccessImpl.sync(ModelAccessImpl.java:91)
	at org.netbeans.modules.xml.xam.AbstractModel.sync(AbstractModel.java:221)
	at org.netbeans.modules.xml.xam.AbstractModel$1.run(AbstractModel.java:500)
Comment 2 Ayub Khan 2006-07-19 17:44:13 UTC
*** Issue 80534 has been marked as a duplicate of this issue. ***
Comment 3 Ayub Khan 2006-07-19 17:44:36 UTC
*** Issue 80600 has been marked as a duplicate of this issue. ***
Comment 4 Nam Nguyen 2006-07-21 01:38:16 UTC
Sam might already have fix the axim exception part.
Comment 5 Samaresh Panda 2006-07-25 04:02:11 UTC
Fix integated:
SyncElementTest.java, new revision: 1.1.2.18;
AXIModelImpl.java, new revision: 1.1.2.13;
ElementImpl.java, new revision: 1.1.2.24;
DefaultSchemaGenerator.java, new revision: 1.1.2.15;
AXIModelUpdater.java, new revision: 1.1.2.16;
AXIComponent.java, new revision: 1.1.2.32;

Note: If you start with PO.xsd, the transformation makes PO.xsd invalid, as you
can see after the transformation simple-type SKU doesn't exist anymore. If you
want to see this working, open PO.xsd and remove any item related to SKU and
then apply design pattern.

Reassigning to Ayub to fix the transformation.
Comment 6 Ayub Khan 2006-07-26 11:10:07 UTC
Fixed the issue.

File affected:

axi/src/org/netbeans/modules/xml/axi/impl/Util.java <--new revision: 1.1.2.38
axi/src/org/netbeans/modules/xml/axi/impl/GardenOfEden.java <--new revision:
1.1.2.13
axi/src/org/netbeans/modules/xml/axi/impl/DefaultSchemaGenerator.java <--new
revision: 1.1.2.16
axi/src/org/netbeans/modules/xml/axi/impl/VenetianBlind.java <--new revision:
1.1.2.9




Comment 7 Andrei Chistiakov 2006-07-27 12:35:55 UTC
Verified in build 060726.