feature request #6911
feature request #6565: [MASTER] Eclipse 4 Migration
Migrate concept view
100%
Associated revisions
ref #6911 Migrate concept view
ref #6911 Fix part labeling
ref #6911 Fix potential NPE
ref #6911 fix selection handling
ref #6911 Fix potential NPE
ref #6911 Fix "Open in bulk editor" handler
History
#1 Updated by Patrick Plitzner over 3 years ago
- Status changed from New to Resolved
- Assignee changed from Patrick Plitzner to Andreas Müller
- Target version changed from Unassigned CDM tickets to Release 4.10
- % Done changed from 0 to 50
#2 Updated by Andreas Müller over 3 years ago
- Status changed from Resolved to Feedback
- Assignee changed from Andreas Müller to Patrick Plitzner
When editing a concept relationship in the details view the concept view becomes empty. Also the save button is disabled.
Also when closing the according taxon in name editor an NPE is thrown (constantly, seems to be a loop):
Caused by: java.lang.NullPointerException at eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailElement.getSourceTaxon(TaxonRelationshipDetailElement.java:133) at eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailElement.getTaxonRelationshipTypeInverseContainer(TaxonRelationshipDetailElement.java:128) at eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailElement.createControls(TaxonRelationshipDetailElement.java:80) at eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailElement.createControls(TaxonRelationshipDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.updateContent(AbstractCdmDetailElement.java:107) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.setEntity(AbstractCdmDetailElement.java:94) at eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailElement.setEntity(TaxonRelationshipDetailElement.java:189) at eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailElement.setEntity(TaxonRelationshipDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setEntity(AbstractCdmDetailSection.java:125) at eu.etaxonomy.taxeditor.view.detail.CdmSectionPart.setFormInput(CdmSectionPart.java:147) at org.eclipse.ui.forms.ManagedForm.setInput(ManagedForm.java:210) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4.refresh(AbstractCdmDataViewerE4.java:139) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4.setInput(AbstractCdmDataViewerE4.java:124) at eu.etaxonomy.taxeditor.view.e4.details.DetailsViewerE4.setInput(DetailsViewerE4.java:163) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4.showViewer(AbstractCdmEditorPartE4.java:170) at eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4.selectionChanged_internal(DetailsPartE4.java:85) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4$DelaySelection.run(AbstractCdmEditorPartE4.java:77) ... 1007 more at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:286) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
The NPE itself does not seem to be new. But the loop. Both need to be fixed.
#3 Updated by Patrick Plitzner over 3 years ago
- Status changed from Feedback to Resolved
- Assignee changed from Patrick Plitzner to Andreas Müller
#4 Updated by Andreas Müller over 3 years ago
- Status changed from Resolved to Feedback
- Assignee changed from Andreas Müller to Patrick Plitzner
All mentioned issues seem to be fixed (loss of focus, save button, closing taxon exception).
A new open issue is: when closing the taxon the concept view and the details view are not emptied but still keeping the data of the concept relationship(s).
#5 Updated by Andreas Müller over 3 years ago
- % Done changed from 50 to 80
#6 Updated by Patrick Plitzner over 3 years ago
- Assignee changed from Patrick Plitzner to Andreas Müller
#7 Updated by Patrick Plitzner over 3 years ago
- Assignee changed from Andreas Müller to Patrick Plitzner
#8 Updated by Andreas Müller over 3 years ago
No taxon is open, I open a taxon with concept relations, the relations are shown in the concept view. When clicking on the first relation it is shown in the details view.
Now I close the taxon again => concept and details view are not empty (but should)
#9 Updated by Patrick Plitzner over 3 years ago
- Status changed from Feedback to Resolved
- Assignee changed from Patrick Plitzner to Andreas Müller
- % Done changed from 80 to 90
#10 Updated by Andreas Müller over 3 years ago
- Status changed from Resolved to Feedback
- Assignee changed from Andreas Müller to Patrick Plitzner
This is still not fully fixed. Both views are emptied but the details view immediately is refilled (looks like the empty concept view gets the focus again and remembers the invisible object that it represents.
#11 Updated by Andreas Müller over 3 years ago
Also an exception may appear if you open the name editor, concept view and detail as above, and additionally you have the supplemental data view open.
After closing the supplemental data view (instead of the taxon) you get
login : admin editor version : 4.10.0.201709220905 server : test.e-taxonomy.eu (edit-test) / rem_conf_am schema version : 4.7.0.0.201710040000 os : Windows Server 2012 R2 6.3 amd64 java : 1.8.0_121 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) at org.eclipse.swt.SWT.error(SWT.java:4533) at org.eclipse.swt.SWT.error(SWT.java:4448) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at eu.etaxonomy.taxeditor.Application.start(Application.java:24) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) at org.eclipse.equinox.launcher.Main.run(Main.java:1519) Caused by: java.lang.NullPointerException at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4.showViewer(AbstractCdmEditorPartE4.java:148) at eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4.selectionChanged_internal(SupplementalDataPartE4.java:106) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4$DelaySelection.run(AbstractCdmEditorPartE4.java:77) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) ... 23 more
#12 Updated by Patrick Plitzner over 3 years ago
Andreas Müller wrote:
This is still not fully fixed. Both views are emptied but the details view immediately is refilled (looks like the empty concept view gets the focus again and remembers the invisible object that it represents.
But the view is emptied immediately when being clicked. The emptying of all views is a bit framework dependent because we cannot control (yet) the order in which the views get the information that the editor is closed. That's why your assumption is correct: The concept view gets the focus before being emptied and then the details view shows the information about the concept. This will be easier to fix in E4 and the current behavior does not allow editing an already closed object (just displaying it).
#13 Updated by Patrick Plitzner over 3 years ago
- Assignee changed from Patrick Plitzner to Andreas Müller
#14 Updated by Andreas Müller over 3 years ago
- Assignee changed from Andreas Müller to Patrick Plitzner
Ok, so we will handle later. But what is about the exception? Also later or can this be fixed?
#15 Updated by Patrick Plitzner over 3 years ago
Andreas Müller wrote:
Ok, so we will handle later. But what is about the exception? Also later or can this be fixed?
has been fixed with taxeditor|8e734ea0746d8e08bf82ce595b18e1bce2c3b69a
#16 Updated by Andreas Müller over 3 years ago
- Status changed from Feedback to Resolved
- Assignee changed from Patrick Plitzner to Andreas Müller
#17 Updated by Andreas Müller over 3 years ago
- Status changed from Resolved to Closed
- Assignee changed from Andreas Müller to Patrick Plitzner
Fix seems to work. So we can close the ticket I think.
#18 Updated by Patrick Plitzner over 3 years ago
- % Done changed from 90 to 100