Project

General

Profile

bug #7545

IllegalStateException: Multiple representations ... when saving first typeDesignation for name less Registration

Added by Andreas Kohlbecker 5 months ago. Updated 5 months ago.

Status:
Closed
Priority:
Highest
Category:
cdm-vaadin
Target version:
Start date:
07/10/2018
Due date:
% Done:

100%

Severity:
critical
Found in Version:
Tags:

Description

Henning reported this error which happened while creating a registration for the existing name Rhopalodia hirudiniformis var. capiticonstricta O.Müll.

http://test.e-taxonomy.eu/cdmserver/phycobank_production/app/registration#!workingset/b777bfbd-4d4c-44b9-a582-238978c429bb

Lectotype, pulished image, Reference ausgewählt, Reference detail angegeben.

Caused by: java.lang.RuntimeException: Error saving
               at eu.etaxonomy.vaadin.mvp.AbstractPopupEditor.save(AbstractPopupEditor.java:396)
               at eu.etaxonomy.vaadin.mvp.AbstractPopupEditor.lambda$new$fad408e6$1(AbstractPopupEditor.java:158)
               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 com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
               ... 76 more
Caused by: com.vaadin.data.fieldgroup.FieldGroup$CommitException: Commit failed
               at com.vaadin.data.fieldgroup.FieldGroup.commit(FieldGroup.java:509)
               at eu.etaxonomy.vaadin.mvp.AbstractPopupEditor.save(AbstractPopupEditor.java:383)
               ... 82 more
Caused by: com.vaadin.data.fieldgroup.FieldGroup$CommitException: Failed to store data to backend
               at eu.etaxonomy.vaadin.mvp.AbstractPopupEditor$SaveHandler.postCommit(AbstractPopupEditor.java:351)
               at com.vaadin.data.fieldgroup.FieldGroup.firePostCommitEvent(FieldGroup.java:625)
               at com.vaadin.data.fieldgroup.FieldGroup.commit(FieldGroup.java:501)
               ... 83 more
Caused by: java.lang.IllegalStateException: Multiple representations of the same entity [eu.etaxonomy.cdm.model.agent.Person#2014] are being merged. Detached: [M?ller, O.]; Detached: [M?ller, O.]
               at org.hibernate.event.internal.EntityCopyNotAllowedObserver.entityCopyDetected(EntityCopyNotAllowedObserver.java:37)
               at org.hibernate.event.internal.MergeContext.put(MergeContext.java:245)
               at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:304)
               at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:170)
               at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:850)
               at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:832)
               at org.hibernate.engine.spi.CascadingActions$6.cascade(CascadingActions.java:260)
               at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:398)
               at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
               at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162)
               at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:111)
               at org.hibernate.event.internal.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:468)
               at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:327)
               at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:170)
               at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:850)
               at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:832)
               at org.hibernate.engine.spi.CascadingActions$6.cascade(CascadingActions.java:260)
               at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:398)
               at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
               at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162)
               at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:431)
               at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:363)
               at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:326)
               at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162)
               at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:111)
               at org.hibernate.event.internal.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:456)
               at org.hibernate.event.internal.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:239)
               at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:173)
               at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:850)
               at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:832)
               at org.hibernate.engine.spi.CascadingActions$6.cascade(CascadingActions.java:260)
               at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:398)
               at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
               at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162)
               at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:431)
               at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:363)
               at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:326)
               at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162)
               at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:111)
               at org.hibernate.event.internal.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:468)
               at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:327)
               at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:170)
               at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:69)
               at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:840)
               at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:822)
               at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:827)
               at eu.etaxonomy.cdm.service.SpecimenTypeDesignationWorkingSetServiceImpl.save(SpecimenTypeDesignationWorkingSetServiceImpl.java:185)
               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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
               at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
               at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
               at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
               at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
               at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
               at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
               at com.sun.proxy.$Proxy866.save(Unknown Source)
               at eu.etaxonomy.cdm.vaadin.view.name.SpecimenTypeDesignationWorkingsetEditorPresenter.saveBean(SpecimenTypeDesignationWorkingsetEditorPresenter.java:259)
               at eu.etaxonomy.cdm.vaadin.view.name.SpecimenTypeDesignationWorkingsetEditorPresenter.saveBean(SpecimenTypeDesignationWorkingsetEditorPresenter.java:67)
               at eu.etaxonomy.vaadin.mvp.AbstractEditorPresenter.onEditorSaveEvent(AbstractEditorPresenter.java:86)
               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.vaadin.spring.events.internal.MethodListenerWrapper.publish(MethodListenerWrapper.java:78)
               at org.vaadin.spring.events.internal.ListenerCollection.publish(ListenerCollection.java:167)
               at org.vaadin.spring.events.internal.ScopedEventBus.publish(ScopedEventBus.java:116)
               at org.vaadin.spring.events.internal.ScopedEventBus.publish(ScopedEventBus.java:109)
               at eu.etaxonomy.vaadin.mvp.AbstractPopupEditor$SaveHandler.postCommit(AbstractPopupEditor.java:343)
               ... 85 more

picture55-1.png View (54.5 KB) Andreas Kohlbecker, 07/10/2018 02:29 PM

picture55-2.png View (30.3 KB) Andreas Kohlbecker, 07/10/2018 02:29 PM

picture55-3.png View (22.6 KB) Andreas Kohlbecker, 07/10/2018 02:29 PM

Associated revisions

Revision af8ec722 (diff)
Added by Andreas Kohlbecker 5 months ago

fix #7545 loading typifiedName into cache to avoid multiple representation problems

History

#1 Updated by Andreas Kohlbecker 5 months ago

Hallo,

nach dem Fehler, konnte ich keine neuen existierenden Namen auswählen (alter Fehler)
nach aus und einloggen konnte ich zwar neue existierende Namen auswählen, aber

  1. War die Registrierung 100165, die ja abgebrochen worden war aus der Anzeige, das hätte eigentlich nicht passieren sollen.
  2. Konnte kein neu ausgewählter Name in die Registrierung, da ein entsprechender Fehler geworfen wurde.

Viele Grüße,
Henning

#2 Updated by Andreas Kohlbecker 5 months ago

Und wenn man nach diesem Identifier sucht gibt es auch eine Fehlermeldung [#!list/inProgress]:

java.lang.NullPointerException
    at org.hibernate.engine.internal.NaturalIdXrefDelegate.validateNaturalId(NaturalIdXrefDelegate.java:165)
    at org.hibernate.engine.internal.NaturalIdXrefDelegate.cacheNaturalIdCrossReference(NaturalIdXrefDelegate.java:72)
    at org.hibernate.engine.internal.StatefulPersistenceContext$1.cacheNaturalIdCrossReferenceFromLoad(StatefulPersistenceContext.java:1729)
    at org.hibernate.engine.internal.StatefulPersistenceContext.getNaturalIdSnapshot(StatefulPersistenceContext.java:338)
    at org.hibernate.event.internal.DefaultFlushEntityEventListener.checkNaturalId(DefaultFlushEntityEventListener.java:90)
    at org.hibernate.event.internal.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:180)
    at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:135)
    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:216)
    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:85)
    at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:44)
    at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1251)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1767)
    at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363)
    at eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmEntityDaoBase.list(CdmEntityDaoBase.java:873)
    at eu.etaxonomy.cdm.api.service.CommonServiceImpl.list(CommonServiceImpl.java:397)
    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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
    at com.sun.proxy.$Proxy593.list(Unknown Source)
    at eu.etaxonomy.cdm.vaadin.component.CdmBeanItemContainerFactory.buildBeanItemContainer(CdmBeanItemContainerFactory.java:104)
    at eu.etaxonomy.cdm.vaadin.component.CdmBeanItemContainerFactory.buildBeanItemContainer(CdmBeanItemContainerFactory.java:113)
    at eu.etaxonomy.cdm.vaadin.view.registration.ListPresenter.handleViewEntered(ListPresenter.java:114)
    at eu.etaxonomy.vaadin.mvp.AbstractPresenter.onViewEnter(AbstractPresenter.java:157)
    at eu.etaxonomy.cdm.vaadin.view.registration.ListViewBean.enter(ListViewBean.java:175)
    at com.vaadin.navigator.Navigator.navigateTo(Navigator.java:625)
    at com.vaadin.navigator.Navigator.navigateTo(Navigator.java:584)
    at eu.etaxonomy.vaadin.ui.navigation.NavigationManagerBean.navigateTo(NavigationManagerBean.java:154)
    at com.vaadin.ui.UI.doInit(UI.java:698)
    at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:216)
    at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:74)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1436)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:380)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:497)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
    at java.lang.Thread.run(Thread.java:748)

#3 Updated by Andreas Kohlbecker 5 months ago

Hallo Henning,

durch den ersten Fehler wurde eine Registrierung erzeugt, die keine TypeDesignation hatte. Das sie für einen existierenden Namen angelegt worden war gab es auch keinen Namen der damit verknüpft ist. Das ist ein ungültiger Zustand für das System und führt daher zu den beobachteten Folgefehlern. Zu solch invaliden Zuständen darf es erst gar nicht kommen, das vorher abgefangen werden, also bevor es zu Problemen kommt - gut dass wir diesen Fall jetzt schon hatten.

Andreas

#4 Updated by Andreas Kohlbecker 5 months ago

  • Description updated (diff)

#5 Updated by Andreas Kohlbecker 5 months ago

The aftereffects disappeared after restarting the cdm-remote instance. So these secondary problems where most probably due to a hibernate session which was still holding problematic data and which was not closed.

#6 Updated by Andreas Kohlbecker 5 months ago

I reproduced this issue.

Duplicate cdm entities only exist after pressing the save button for the new typedesignation:

<<< Root Entity Registration with id 9921 >>>
Duplicate CDM Entities,
 - nomenclaturalReference:Reference/519     in entity eu.etaxonomy.cdm.model.name.TaxonName with id : 2506
  -- entity belongs to cache(s) : 
 - citation:Reference/519      in entity eu.etaxonomy.cdm.model.common.IdentifiableSource with id : 1872
  -- entity belongs to cache(s) : {TC}
-----------
-----------
 - authorship:Person/2014     in entity eu.etaxonomy.cdm.model.reference.Reference with id : 519
  -- entity belongs to cache(s) : 
 - authorship:Person/2014      in entity eu.etaxonomy.cdm.model.reference.Reference with id : 519
  -- entity belongs to cache(s) : {TC}
-----------
-----------
 - combinationAuthorship:Person/2014     in entity eu.etaxonomy.cdm.model.name.TaxonName with id : 2506
  -- entity belongs to cache(s) : 
 - authorship:Person/2014      in entity eu.etaxonomy.cdm.model.reference.Reference with id : 519
  -- entity belongs to cache(s) : {TC}
-----------

 - ?createdBy[User#21].citation[Reference#1224].[SpecimenTypeDesignation#0].typeDesignations[java.util.HashSet].[Registration#9921]
 - ?combinationAuthorship[Person#2014].[TaxonName#2506].typifiedNames[java.util.HashSet].[SpecimenTypeDesignation#0].typeDesignations[java.util.HashSet].[Registration#9921]
 - ?nomenclaturalReference[Reference#519].[TaxonName#2506].typifiedNames[java.util.HashSet].[SpecimenTypeDesignation#0].typeDesignations[java.util.HashSet].[Registration#9921]
 - ?inReference[Reference#520].nomenclaturalReference[Reference#519].[TaxonName#2506].typifiedNames[java.util.HashSet].[SpecimenTypeDesignation#0].typeDesignations[java.util.HashSet].[Registration#9921]


#7 Updated by Andreas Kohlbecker 5 months ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 50

#8 Updated by Andreas Kohlbecker 5 months ago

  • Assignee changed from Andreas Kohlbecker to Wolf-Henning Kusber

#9 Updated by Wolf-Henning Kusber 5 months ago

  • Status changed from Resolved to Closed
  • Assignee changed from Wolf-Henning Kusber to Andreas Kohlbecker
  • % Done changed from 50 to 100

perfekt!

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)