Project

General

Profile

Actions

feature request #6911

closed

feature request #6565: [MASTER] Eclipse 4 Migration

Migrate concept view

Added by Patrick Plitzner over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
New
Assignee:
Patrick Plitzner
Category:
taxeditor
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
Severity:
normal
Tags:
Actions #1

Updated by Patrick Plitzner over 6 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
Actions #2

Updated by Andreas Müller over 6 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.

Actions #3

Updated by Patrick Plitzner over 6 years ago

  • Status changed from Feedback to Resolved
  • Assignee changed from Patrick Plitzner to Andreas Müller
Actions #4

Updated by Andreas Müller over 6 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).

Actions #5

Updated by Andreas Müller over 6 years ago

  • % Done changed from 50 to 80
Actions #6

Updated by Patrick Plitzner over 6 years ago

  • Assignee changed from Patrick Plitzner to Andreas Müller
Actions #7

Updated by Patrick Plitzner over 6 years ago

  • Assignee changed from Andreas Müller to Patrick Plitzner
Actions #8

Updated by Andreas Müller over 6 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)

Actions #9

Updated by Patrick Plitzner over 6 years ago

  • Status changed from Feedback to Resolved
  • Assignee changed from Patrick Plitzner to Andreas Müller
  • % Done changed from 80 to 90
Actions #10

Updated by Andreas Müller over 6 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.

Actions #11

Updated by Andreas Müller over 6 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
Actions #12

Updated by Patrick Plitzner over 6 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).

Actions #13

Updated by Patrick Plitzner over 6 years ago

  • Assignee changed from Patrick Plitzner to Andreas Müller
Actions #14

Updated by Andreas Müller over 6 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?

Actions #15

Updated by Patrick Plitzner over 6 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

Actions #16

Updated by Andreas Müller over 6 years ago

  • Status changed from Feedback to Resolved
  • Assignee changed from Patrick Plitzner to Andreas Müller
Actions #17

Updated by Andreas Müller over 6 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.

Actions #18

Updated by Patrick Plitzner over 6 years ago

  • % Done changed from 90 to 100
Actions

Also available in: Atom PDF