Bug 185579 - JSDL multi-page editor does not work
Summary: JSDL multi-page editor does not work
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Geclipse (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Nicholas Loulloudes CLA
QA Contact:
URL:
Whiteboard:
Keywords: contributed
Depends on:
Blocks:
 
Reported: 2007-05-04 12:58 EDT by Thomas Kockerbauer CLA
Modified: 2014-01-09 16:17 EST (History)
0 users

See Also:


Attachments
one of the jsdl files that don't work (3.83 KB, application/octet-stream)
2007-05-04 13:13 EDT, Thomas Kockerbauer CLA
no flags Details
the other jsdl file that doesn't work (600 bytes, application/octet-stream)
2007-05-04 13:14 EDT, Thomas Kockerbauer CLA
no flags Details
Patch for eu.geclipse.ui (6.69 KB, patch)
2007-05-08 03:59 EDT, Nicholas Loulloudes CLA
aog-ecl: iplog+
Details | Diff
patch for eu.geclipse.jsdl.adapters (4.80 KB, patch)
2007-05-08 03:59 EDT, Nicholas Loulloudes CLA
aog-ecl: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Kockerbauer CLA 2007-05-04 12:58:45 EDT
When I try to open a jsdl file (in Eclipse 3.3M6) I get following exception:

java.lang.NullPointerException
	at eu.geclipse.jsdl.adapters.jsdl.JobIdentificationTypeAdapter.load(JobIdentificationTypeAdapter.java:121)
	at eu.geclipse.ui.jsdl.editor.pages.JobDefinitionPage.createFormContent(JobDefinitionPage.java:146)
	at org.eclipse.ui.forms.editor.FormPage$1.run(FormPage.java:151)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.forms.editor.FormPage.createPartControl(FormPage.java:149)
	at org.eclipse.ui.forms.editor.FormEditor.pageChange(FormEditor.java:484)
	at eu.geclipse.ui.editors.JsdlMultiPageEditor.pageChange(JsdlMultiPageEditor.java:791)
	at org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:619)
	at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:287)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:663)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:422)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:299)
	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:179)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)
	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1208)
	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1161)
	at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1551)
	at org.eclipse.ui.internal.PartStack.add(PartStack.java:474)
	at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:106)
	at org.eclipse.ui.internal.PartStack.add(PartStack.java:460)
	at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:115)
	at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:65)
	at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217)
	at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207)
	at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:774)
	at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:673)
	at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:634)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2637)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2570)
	at org.eclipse.ui.internal.WorkbenchPage.access$12(WorkbenchPage.java:2562)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2547)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2542)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2526)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2517)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:644)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:603)
	at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileAction.java:98)
	at org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystemEditorAction.java:98)
	at eu.geclipse.ui.internal.actions.OpenElementAction.run(OpenElementAction.java:87)
	at eu.geclipse.ui.internal.actions.OpenActions.delegateOpenEvent(OpenActions.java:100)
	at eu.geclipse.ui.views.GridModelViewPart.handleOpen(GridModelViewPart.java:375)
	at eu.geclipse.ui.views.GridModelViewPart$4.open(GridModelViewPart.java:431)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:850)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:45)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:153)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079)
	at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1178)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:263)
	at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:257)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:297)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1097)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3256)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2923)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2337)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2301)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2176)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:463)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:458)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:101)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:146)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:356)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:171)
	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:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)

It occurs in JobIdentificationTypeAdapter.java at line nr. 121:

widgetName.setText(value.toString());

widgetName is null. The value of wigetName is fetched in line 118 by:

widgetName = this.widgetFeaturesMap.get( featureID );

where featureID has the value 3.
Comment 1 Thomas Kockerbauer CLA 2007-05-04 13:11:33 EDT
I have tried another JSDL file now, I also get a NullPointerException, but at a different location:

java.lang.NullPointerException
	at eu.geclipse.jsdl.adapters.jsdl.JobIdentificationTypeAdapter.getTypeForAdapter(JobIdentificationTypeAdapter.java:53)
	at eu.geclipse.jsdl.adapters.jsdl.JobIdentificationTypeAdapter.<init>(JobIdentificationTypeAdapter.java:46)
	at eu.geclipse.ui.jsdl.editor.pages.JobDefinitionPage.setPageContent(JobDefinitionPage.java:104)
	at eu.geclipse.ui.editors.JsdlMultiPageEditor.pushContentToPages(JsdlMultiPageEditor.java:191)
	at eu.geclipse.ui.editors.JsdlMultiPageEditor.addPages(JsdlMultiPageEditor.java:177)
	at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:142)
	at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:283)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:663)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:422)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:299)
	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:179)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)
	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1208)
	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1161)
	at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1551)
	at org.eclipse.ui.internal.PartStack.add(PartStack.java:474)
	at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:106)
	at org.eclipse.ui.internal.PartStack.add(PartStack.java:460)
	at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:115)
	at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:65)
	at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217)
	at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207)
	at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:774)
	at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:673)
	at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:634)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2637)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2570)
	at org.eclipse.ui.internal.WorkbenchPage.access$12(WorkbenchPage.java:2562)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2547)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2542)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2526)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2517)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:644)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:603)
	at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileAction.java:98)
	at org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystemEditorAction.java:98)
	at eu.geclipse.ui.internal.actions.OpenElementAction.run(OpenElementAction.java:87)
	at eu.geclipse.ui.internal.actions.OpenActions.delegateOpenEvent(OpenActions.java:100)
	at eu.geclipse.ui.views.GridModelViewPart.handleOpen(GridModelViewPart.java:375)
	at eu.geclipse.ui.views.GridModelViewPart$4.open(GridModelViewPart.java:431)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.runtime.Platform.run(Platform.java:850)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:45)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:153)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079)
	at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1178)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:263)
	at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:257)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:297)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1097)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3256)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2923)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2337)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2301)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2176)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:463)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:458)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:101)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:146)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:356)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:171)
	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:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)

I've also tried to create a new JSDL file using the wizard, the file created using the wizard worked. The two files I tried before might be incorrect but the editor should not crash even in that case.
Comment 2 Thomas Kockerbauer CLA 2007-05-04 13:13:11 EDT
Created attachment 65942 [details]
one of the jsdl files that don't work
Comment 3 Thomas Kockerbauer CLA 2007-05-04 13:14:24 EDT
Created attachment 65943 [details]
the other jsdl file that doesn't work
Comment 4 Nicholas Loulloudes CLA 2007-05-04 14:03:19 EDT
There seems to be a problem with the JobDefinitionAdapter.


I will have a look on this and apply a patch.
Comment 5 Nicholas Loulloudes CLA 2007-05-08 03:57:41 EDT
Ok, 

each file was a good test case for the JSDL editor.

The first file (jsdl_test.jsdl) contained the <jsdl:JobProject/> element which was not implemented in the JobIdentificationTypeAdapter, so this is the reason you received the first error.

This is now implemented along with <jsdl:JobAnnotation/> element and thus resolves the errors you received. The patches that are attached, resolve these problems. Patches are for the "eu.geclipse.ui" and "eu.geclipse.jsdl.adapters" plugins.


Now, the second file (newFile.jsdl) contained incorrect syntax for the JobDefinition element ( which is the root JSDL element).... 

You can observe this in the second line of the file.. where:

<jsdl:job.....> should be <jsdl:JobDefinition....>. 

Also an end tag for this root element does not exist.

To resolve this, i have opened a feature request (Bug: 185579) for the JSDL Editor that is an Error Discovery and Reporting Mechanism. I will implement this  mechanism at a later stage (propably ready for 0.5.0 RC0)

Comment 6 Nicholas Loulloudes CLA 2007-05-08 03:59:01 EDT
Created attachment 66255 [details]
Patch for eu.geclipse.ui

This Patch solves the JobProject error that wasn't implemented in the JobIdentificationAdapterType.
Comment 7 Nicholas Loulloudes CLA 2007-05-08 03:59:35 EDT
Created attachment 66256 [details]
patch for eu.geclipse.jsdl.adapters

This Patch solves the JobProject error that wasn't implemented in the JobIdentificationAdapterType.
Comment 8 Nicholas Loulloudes CLA 2007-05-09 03:56:47 EDT
Please apply patches. Thanks.
Comment 9 Thomas Kockerbauer CLA 2007-05-21 11:46:22 EDT
I've applied the patches, the jsdl_test.jsdl file now works.
Comment 10 Nicholas Loulloudes CLA 2007-06-26 04:54:27 EDT
Change Resolution to Closed
Comment 11 Ariel Garcia CLA 2009-05-03 09:17:58 EDT
Comment on attachment 66255 [details]
Patch for eu.geclipse.ui

Applied by Thomas
Comment 12 Ariel Garcia CLA 2009-05-03 09:18:09 EDT
Comment on attachment 66256 [details]
patch for eu.geclipse.jsdl.adapters

Applied by Thomas