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.
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)
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)
*** Issue 80534 has been marked as a duplicate of this issue. ***
*** Issue 80600 has been marked as a duplicate of this issue. ***
Sam might already have fix the axim exception part.
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.
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
Verified in build 060726.