Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 327873

Summary: [editor] Argument cannot be null when editing referenced XSD attribute with restriction
Product: [WebTools] WTP Source Editing Reporter: Stian Soiland-Reyes <stian>
Component: wst.xsdAssignee: wst.xsd <wst.xsd-inbox>
Status: NEW --- QA Contact: Keith Chong <keith.chong.ca>
Severity: normal    
Priority: P3 CC: david_williams
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
URL: http://github.com/myGrid/scufl2/blob/eclipse-xsd-bug/scufl2-usecases/src/main/resources/workflows/example/workflowBundle.xsd
Whiteboard:

Description Stian Soiland-Reyes CLA 2010-10-15 06:34:14 EDT
(Not sure why Eclipse selected ACTF/accservice as component - the component in question is the default XSD Editor in Eclipse for J2EE)


What steps will reproduce the problem?
1. In rdf.xsd, make an attribute 
	<xs:attribute name="parseType">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="Collection"></xs:enumeration>
				<xs:enumeration value="Resource"></xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>

2. In workflowBundle.xsd - import rdf.xsd - and make a type using this type.
	<xs:complexType name="OutputPortBinding">
		<xs:sequence>
			<xs:element name="bindsOutputActivityPort" type="rdf:Resource" />
			<xs:element name="bindsOutputProcessorPort" type="rdf:Resource" />
		</xs:sequence>
		<xs:attribute ref="rdf:parseType" use="required" fixed="Resource" />
	</xs:complexType>

3. Any kind of editing in the 'Source' tab of workflowBundle.xsd within the <xs:attribute> will - character by character - bring up a dialogue complaining about "Argument cannot be null". - presumably because the XSD 'Design' bit of 'Properties' is struggling to update the list of restrictions or similar.

The files in question can be checked out from http://github.com/myGrid/scufl2/blob/eclipse-xsd-bug/scufl2-usecases/src/main/resources/workflows/example/workflowBundle.xsd

-- Error Details --
Date: Fri Oct 15 10:44:17 BST 2010
Message: Problems occurred when invoking code from plug-in: "org.eclipse.ui.views.properties.tabbed".
Severity: Error
Product: Eclipse 1.3.1.20100913-1228 (org.eclipse.epp.package.java.product)
Plugin: org.eclipse.ui.views.properties.tabbed
Session Data:
eclipse.buildId=M20100909-0800
java.version=1.6.0_21
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.java.product

This is a continuation of log file /home/stain/stuff/src/workspace/.metadata/.bak_1.log
Created Time: 2010-10-14 14:56:32.433


Exception Stack Trace:
java.lang.IllegalArgumentException: Argument cannot be null
	at org.eclipse.swt.SWT.error(SWT.java:4064)
	at org.eclipse.swt.SWT.error(SWT.java:3998)
	at org.eclipse.swt.SWT.error(SWT.java:3969)
	at org.eclipse.swt.custom.CCombo.add(CCombo.java:188)
	at org.eclipse.wst.xsd.ui.internal.common.properties.sections.XSDAttributeDeclarationSection.fillTypesCombo(XSDAttributeDeclarationSection.java:286)
	at org.eclipse.wst.xsd.ui.internal.common.properties.sections.XSDAttributeDeclarationSection.refresh(XSDAttributeDeclarationSection.java:357)
	at org.eclipse.ui.views.properties.tabbed.TabContents$6.run(TabContents.java:217)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
	at org.eclipse.ui.views.properties.tabbed.TabContents.refresh(TabContents.java:220)
	at org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage.handlePartActivated(TabbedPropertySheetPage.java:341)
	at org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage$1.partActivated(TabbedPropertySheetPage.java:118)
	at org.eclipse.ui.internal.PartListenerList$1.run(PartListenerList.java:72)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.runtime.Platform.run(Platform.java:888)
	at org.eclipse.ui.internal.PartListenerList.fireEvent(PartListenerList.java:57)
	at org.eclipse.ui.internal.PartListenerList.firePartActivated(PartListenerList.java:70)
	at org.eclipse.ui.internal.PartService.firePartActivated(PartService.java:187)
	at org.eclipse.ui.internal.PartService.setActivePart(PartService.java:306)
	at org.eclipse.ui.internal.WWinPartService.updateActivePart(WWinPartService.java:135)
	at org.eclipse.ui.internal.WWinPartService.access$0(WWinPartService.java:125)
	at org.eclipse.ui.internal.WWinPartService$WWinListener.partDeactivated(WWinPartService.java:50)
	at org.eclipse.ui.internal.PartListenerList2$4.run(PartListenerList2.java:115)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.runtime.Platform.run(Platform.java:888)
	at org.eclipse.ui.internal.PartListenerList2.fireEvent(PartListenerList2.java:55)
	at org.eclipse.ui.internal.PartListenerList2.firePartDeactivated(PartListenerList2.java:113)
	at org.eclipse.ui.internal.PartService.firePartDeactivated(PartService.java:242)
	at org.eclipse.ui.internal.PartService.setActivePart(PartService.java:300)
	at org.eclipse.ui.internal.WorkbenchPagePartList.fireActivePartChanged(WorkbenchPagePartList.java:57)
	at org.eclipse.ui.internal.PartList.setActivePart(PartList.java:136)
	at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3537)
	at org.eclipse.ui.internal.WorkbenchPage.requestActivation(WorkbenchPage.java:3077)
	at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:279)
	at org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:98)
	at org.eclipse.ui.internal.PartPane.handleEvent(PartPane.java:237)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1263)
	at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1533)
	at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:2645)
	at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:2581)
	at org.eclipse.swt.widgets.Composite.gtk_button_press_event(Composite.java:681)
	at org.eclipse.swt.widgets.Canvas.gtk_button_press_event(Canvas.java:152)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1731)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4796)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4360)
	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8168)
	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1238)
	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2229)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3159)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Comment 1 David Williams CLA 2010-10-20 12:17:24 EDT
moving to xsd component and resetting inbox