feature request #10196
closedHybrid structure-state terms
Added by Andreas Müller over 1 year ago. Updated about 1 year ago.
90%
Description
copied from #10133#note-1
some structures can also be used as states in a character matrix. We need to decide how to handle them.
Solutions are:
- Duplicate them (and link to each other)
- Create a new term type "Structure-State" (or "State-Structure")
- Handle as special structures that can be used in state context, too
- Handle as special states that can be used in structure context, too
- any other
Solution 1:
- Pro: easy to implement, mostly on data level, only the way how to link them needs to be discussed
- Con: redundancy on all levels (editing, snynchronization, evaluation, ...)
Solution 2:
Pro: No redundancy
- Con:
- the current term model requires that these terms come in a separate vocabulary as vocabularies only allow terms of the same term type (and of a subtype? - needs to be checked!);
- same problem in the structure tree (TermGraphBase);
- same problem with state tree/list (TermGraphBase)
- Class State preferrably changed to DefinedTerm to make StateData.state work with hybrid structures, too (also Feature.supportedCategoricalEnumerations, but maybe not a strict requirement)
Solution 3:
- Pro: No redundancy
- Con:
- problem with state tree/list (TermGraphBase)
- Class State preferrably changed to DefinedTerm to make StateData.state work with hybrid structures, too (also Feature.supportedCategoricalEnumerations, but maybe not a strict requirement)
Solution 4:
- Pro: No redundancy
- Con:
- Character.structure needs to be adapted to allow a state, too
- structure tree (TermGraphBase) needs to be adapted, to allow states, too, at least for kind-of relationships
Solution 5: ??
Some ideas:
maybe State (or StateData.state) needs to be much more flexibel anyway, not only for descriptions but also for other types of CategoricalData. Generally a State is an entry in a selection list for a given feature. In the most general way it could be any CdmBase. But even less general one can imagine that each DefinedTermBase could be a possible entry . So if we do want to allow this State might be only a default for values that are not available elsewhere. E.g. some databases handle endemism as separate feature while the default is to handle it as a distribution with one of the endemic status. "Endemic (for the given area)" this way could stay a distribution status (PresenceAbsenceTerm) while it can still be used as a state in CategoricalData.
Are there any serious issues if we handle it this way?The structure-state terms always seem to be kind-of structures related to their parent (NoK: Ja ich glaube so ist das)
Final solution:
- like above states can be any defined terms now where ever they are currently used, so this is in StateData, Feature.supportedCategoricalEnumerations and FeatureState
- in TaxEditor the Feature.supportedCategoricalEnumerations combo is extended by structure vocabularies (or collections later)
Open issues:
- think about sub-termtype "Character States"
fix "TODO 10196"(2 left, but only in jaxb and sdd.out, so not so important for now
Related issues
Updated by Andreas Müller over 1 year ago
- Copied from feature request #10133: Improve ontology state vocabularies added
Updated by Andreas Müller over 1 year ago
AM:
Erstmal würde ich mir gerne nochmal ins Gedächtnis zurückrufen, inwiefern Terme beide Eigenschaften (State/Struktur) haben können. Kannst du 2-3 Beispiele nennen, bei der ein Character einen State hat der anderweitig auch als Struktur verwendet werden könnte? Geht es da nur um so Characters wie „Stuktur des XY“ oder ist das auch noch komplexer?
Ich frage, weil es davon abhängig sein könnte, inwieweit es Sinn macht beide Terme zu separat zu bewahren oder sie hybrid als ein Term zu behandeln.
NoK:
Structures: zur Frage inwiefern Terme beide Eigenschaften (State/Struktur) haben können: Structures als states werden insbesondere bei der (nicht aggregierten) Beschreibung höheren Taxa benötigt, wenn die spezifischen Ausprägungen, die eine allgemeinere Struktur in Kindtaxa hat, angegeben wird, also: "Frucht eine Beere, Kapsel oder Nuss". Oder: "Entire plant+growth form: Halbstrauch, Strauch oder Baum", das aber genauso auch bei Kindtaxa. In der Beschreibung der Kindtaxa würde die Beere, die Kapsel oder Nuss dann als Strukturterme verwendet, denen States zugeordnet werden. Ist aber auch nicht zwingend, weil ich ja erst "Frucht+Architecture: Nuss" bauen könnte (wäre aber z.B. bei Compositae unüblich). Andere Falltypen sind mir gerade nicht präsent ... Schaut man sich das Subvokabular an, dann ist es sehr groß und in den allermeisten Fällen fällt mir spontan keine Verwendung als States ein, andererseits ist es aber für den aufgeführten Zweck kaum vollständig
Updated by Andreas Müller over 1 year ago
- Related to feature request #6794: Improve term structure added
Updated by Andreas Müller over 1 year ago
- Status changed from New to Resolved
- % Done changed from 0 to 70
This should be mostly ready. Still need to handle open issues and test in TaxEditor (add voc to characters and in matrix)
Updated by Andreas Müller over 1 year ago
- Target version changed from CDM UML 5.43 to Release 5.35
Updated by Andreas Müller over 1 year ago
- Description updated (diff)
- % Done changed from 70 to 90
This is more or less fixed now and tested in Character editor and in matrix.
Not yet tested in PolytomousKeys(needed?) and dataportal?
Updated by Andreas Müller over 1 year ago
- Description updated (diff)
- Assignee changed from Andreas Müller to Katja Luther
Can you please review. When done we can create a ticket for the remaining open issue.
Updated by Andreas Müller over 1 year ago
- Priority changed from Highest to Priority14
Updated by Katja Luther about 1 year ago
- Status changed from Resolved to Feedback
- Assignee changed from Katja Luther to Andreas Müller
Clicking on character "growth form" in Bupleurum instance results in StackOverflowException (in DescriptiveDataSet Editor, TermEditor and TermTreeEditor):
last remote service : http://localhost:8081/remoting/vocabulary.service last remote method : getDbSchemaVersion last remote request client time : 2023-01-03T09:05:41.353 client error time : 2023-01-03T09:05:41.463 login : admin editor version : 5.35.0.qualifier server : localhost (localhost-dev) schema version : 5.35.1.0.20221218 os : Windows Server 2012 R2 6.3 amd64 java : 1.8.0_131 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.StackOverflowError) 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:20) 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) at org.eclipse.equinox.launcher.Main.main(Main.java:1492) Caused by: java.lang.StackOverflowError at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) ... at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:45) at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:149) at org.springframework.remoting.support.RemoteInvocationBasedAccessor.recreateRemoteInvocationResult(RemoteInvocationBasedAccessor.java:85) at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:158) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy91.findByTermType(Unknown Source) at eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement.getVocabularies(VocabularyComboElement.java:236) at eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement.<init>(VocabularyComboElement.java:64) at eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement.<init>(VocabularyComboElement.java:54) at eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.createVocabularyComboElement(CdmFormFactory.java:1165) at eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionElement.createControls(StateVocabularyCollectionElement.java:40) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement.<init>(AbstractEntityCollectionElement.java:115) at eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionElement.<init>(StateVocabularyCollectionElement.java:35) at eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.createEntityCollectionElement(CdmFormFactory.java:2851) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.createElementComposite(AbstractEntityCollectionSection.java:282) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.createDynamicContents(AbstractEntityCollectionSection.java:270) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.renderContent(AbstractEntityCollectionSection.java:240) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.internalUpdateSection(AbstractEntityCollectionSection.java:222) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.setEntity(AbstractEntityCollectionSection.java:179) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement.createControls(CharacterDetailElement.java:137) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement.createControls(CharacterDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.updateContent(AbstractCdmDetailElement.java:103) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.setEntity(AbstractCdmDetailElement.java:83) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement.setEntity(CharacterDetailElement.java:171) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement.setEntity(CharacterDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setEntity(AbstractCdmDetailSection.java:153) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement.createControls(CharacterNodeDetailElement.java:46) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement.createControls(CharacterNodeDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.updateContent(AbstractCdmDetailElement.java:103) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.setEntity(AbstractCdmDetailElement.java:83) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement.setEntity(CharacterNodeDetailElement.java:72) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement.setEntity(CharacterNodeDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setEntity(AbstractCdmDetailSection.java:153) at eu.etaxonomy.taxeditor.view.detail.CdmSectionPart.setFormInput(CdmSectionPart.java:176) at org.eclipse.ui.forms.ManagedForm.setInput(ManagedForm.java:210) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewer.refresh(AbstractCdmDataViewer.java:152) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewer.setInput(AbstractCdmDataViewer.java:135) at eu.etaxonomy.taxeditor.view.e4.details.DetailsViewerE4.setInput(DetailsViewerE4.java:207) at eu.etaxonomy.taxeditor.view.e4.details.DetailsViewerE4.setInput(DetailsViewerE4.java:174) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart.showViewer(AbstractCdmEditorPart.java:311) at eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4.selectionChanged_internal(DetailsPartE4.java:108) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart$DelaySelection.run(AbstractCdmEditorPart.java:136) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) ... 24 more
Updated by Andreas Müller about 1 year ago
- Assignee changed from Andreas Müller to Katja Luther
Katja Luther wrote in #note-17:
Clicking on character "growth form" in Bupleurum instance results in StackOverflowException (in DescriptiveDataSet Editor, TermEditor and TermTreeEditor):
last remote service : http://localhost:8081/remoting/vocabulary.service last remote method : getDbSchemaVersion last remote request client time : 2023-01-03T09:05:41.353 client error time : 2023-01-03T09:05:41.463 login : admin editor version : 5.35.0.qualifier server : localhost (localhost-dev) schema version : 5.35.1.0.20221218 os : Windows Server 2012 R2 6.3 amd64 java : 1.8.0_131 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.StackOverflowError) 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:20) 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) at org.eclipse.equinox.launcher.Main.main(Main.java:1492) Caused by: java.lang.StackOverflowError at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) ... at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at eu.etaxonomy.cdm.api.service.VocabularyServiceImpl.findByTermType(VocabularyServiceImpl.java:80) at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:45) at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:149) at org.springframework.remoting.support.RemoteInvocationBasedAccessor.recreateRemoteInvocationResult(RemoteInvocationBasedAccessor.java:85) at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:158) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy91.findByTermType(Unknown Source) at eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement.getVocabularies(VocabularyComboElement.java:236) at eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement.<init>(VocabularyComboElement.java:64) at eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement.<init>(VocabularyComboElement.java:54) at eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.createVocabularyComboElement(CdmFormFactory.java:1165) at eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionElement.createControls(StateVocabularyCollectionElement.java:40) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement.<init>(AbstractEntityCollectionElement.java:115) at eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionElement.<init>(StateVocabularyCollectionElement.java:35) at eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.createEntityCollectionElement(CdmFormFactory.java:2851) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.createElementComposite(AbstractEntityCollectionSection.java:282) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.createDynamicContents(AbstractEntityCollectionSection.java:270) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.renderContent(AbstractEntityCollectionSection.java:240) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.internalUpdateSection(AbstractEntityCollectionSection.java:222) at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.setEntity(AbstractEntityCollectionSection.java:179) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement.createControls(CharacterDetailElement.java:137) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement.createControls(CharacterDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.updateContent(AbstractCdmDetailElement.java:103) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.setEntity(AbstractCdmDetailElement.java:83) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement.setEntity(CharacterDetailElement.java:171) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement.setEntity(CharacterDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setEntity(AbstractCdmDetailSection.java:153) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement.createControls(CharacterNodeDetailElement.java:46) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement.createControls(CharacterNodeDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.updateContent(AbstractCdmDetailElement.java:103) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement.setEntity(AbstractCdmDetailElement.java:83) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement.setEntity(CharacterNodeDetailElement.java:72) at eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement.setEntity(CharacterNodeDetailElement.java:1) at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setEntity(AbstractCdmDetailSection.java:153) at eu.etaxonomy.taxeditor.view.detail.CdmSectionPart.setFormInput(CdmSectionPart.java:176) at org.eclipse.ui.forms.ManagedForm.setInput(ManagedForm.java:210) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewer.refresh(AbstractCdmDataViewer.java:152) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewer.setInput(AbstractCdmDataViewer.java:135) at eu.etaxonomy.taxeditor.view.e4.details.DetailsViewerE4.setInput(DetailsViewerE4.java:207) at eu.etaxonomy.taxeditor.view.e4.details.DetailsViewerE4.setInput(DetailsViewerE4.java:174) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart.showViewer(AbstractCdmEditorPart.java:311) at eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4.selectionChanged_internal(DetailsPartE4.java:108) at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart$DelaySelection.run(AbstractCdmEditorPart.java:136) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) ... 24 more
This should be fixed. Can you please review again? (but wait until server builds again)
Updated by Katja Luther about 1 year ago
- Status changed from Feedback to Closed
- Assignee changed from Katja Luther to Andreas Müller
works as expected now.