Project

General

Profile

bug #8638

Updated by Andreas Müller over 4 years ago

It seems that the behavior of the session cache handling is not deterministic. I did exchange a name for a taxon by another name. This sometimes resulted in a multiple representation exception for the author of the nomenclatural reference (of both names, old and new name had the same nom.ref.) which was at the same time the combination author of the new name (the old name had another combination author record attached). 

 I did this 3x always waiting some longer time between actions to make sure it is not a problem of unfinished (asynchronous) actions. Afterwards I inspected the session via session view. The result: I did not always get the same number of objects in the session (sometimes 36, sometimes 38) but more important doing it 3x I got 3 different Debug Informations when using "Inspect Active Session". See the 3 versions below. 

 With the last version, having line 

 ~~~ 
 - ?authorship[Person#4132].nomenclaturalReference[Reference#33035].name[TaxonName#132501].taxon[Taxon#165205].[TaxonNode#62455]" 
 ~~~ 

 the multiple representations exception occurred for Person#4132. 

 To me it seems that this indeterministic behavior might be the main reason for the unsolved multiple-representation exceptions and needs urgently be examined and fixed. 

 36: 

 ~~~ 
 <<< Root Entity TaxonNode with id 62455 >>> 
 Duplicate CDM Entities, 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 808 
   -- entity belongs to cache(s) : {DC} 
  - language:Language/273        in entity eu.etaxonomy.cdm.model.term.Representation with id : 274 
   -- entity belongs to cache(s) :  
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 2470 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 274 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 2174 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 2381 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 2379 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 1079 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 2378 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 2172 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 
  - language:Language/273       in entity eu.etaxonomy.cdm.model.term.Representation with id : 810 
   -- entity belongs to cache(s) :  
  - language:Language/273        in entity eu.etaxonomy.cdm.model.common.LanguageString with id : 4311 
   -- entity belongs to cache(s) : {DC} 
 ----------- 

 Not In Cache Entities (*: NOT_FOUND, ?: COPY_ENTITY) 
  - ?[Representation#274].representations[java.util.HashSet].language[Language#273].name[LanguageString#4311].classification[Classification#10].[TaxonNode#62455] 
  - ?language[Language#273].[Representation#274].representations[java.util.HashSet].language[Language#273].name[LanguageString#4311].classification[Classification#10].[TaxonNode#62455] 
  - *rank[Rank#802].name[TaxonName#33796].taxon[Taxon#152246].parent[TaxonNode#48294].[TaxonNode#62455] 
  - ?[Representation#810].representations[java.util.HashSet].rank[Rank#802].name[TaxonName#33796].taxon[Taxon#152246].parent[TaxonNode#48294].[TaxonNode#62455] 
  - *area[NamedArea#2358].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - *level[NamedAreaLevel#2267].area[NamedArea#2358].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - *[Representation#2379].representations[java.util.HashSet].level[NamedAreaLevel#2267].area[NamedArea#2358].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - ?[Representation#2470].representations[java.util.HashSet].area[NamedArea#2358].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - *partOf[NamedArea#2269].area[NamedArea#2358].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - *level[NamedAreaLevel#2266].partOf[NamedArea#2269].area[NamedArea#2358].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - *[Representation#2378].representations[java.util.HashSet].level[NamedAreaLevel#2266].partOf[NamedArea#2269].area[NamedArea#2358].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - ?[Representation#2381].representations[java.util.HashSet].partOf[NamedArea#2269].area[NamedArea#2358].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - *status[PresenceAbsenceTerm#2089].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - ?[Representation#2172].representations[java.util.HashSet].status[PresenceAbsenceTerm#2089].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - *feature[Feature#999].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - ?[Representation#1079].representations[java.util.HashSet].feature[Feature#999].[Distribution#605595].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - *status[PresenceAbsenceTerm#2091].[Distribution#605596].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - ?[Representation#2174].representations[java.util.HashSet].status[PresenceAbsenceTerm#2091].[Distribution#605596].descriptionElements[java.util.HashSet].[TaxonDescription#59260].descriptions[java.util.HashSet].taxon[Taxon#165205].[TaxonNode#62455] 
  - ?[Representation#808].representations[java.util.HashSet].rank[Rank#800].name[TaxonName#132501].taxon[Taxon#165205].[TaxonNode#62455] 
 ~~~ 

 38: 

 ~~~ 
 <<< Root Entity TaxonNode with id 62455 >>> 
 No Duplicate CDM Entities. 

 Not In Cache Entities (*: NOT_FOUND, ?: COPY_ENTITY) 
  - ?[Representation#274].representations[java.util.HashSet].language[Language#273].name[LanguageString#4311].classification[Classification#10].[TaxonNode#62455] 
  - ?[Representation#808].representations[java.util.HashSet].rank[Rank#800].name[TaxonName#132501].taxon[Taxon#165205].[TaxonNode#62455] 
 ~~~ 

 38: 
 ~~~ 

 ~~~ 
 <<< Root Entity TaxonNode with id 62455 >>> 
 Duplicate CDM Entities, 
  - authorship:Person/4132       in entity eu.etaxonomy.cdm.model.reference.Reference with id : 33035 
   -- entity belongs to cache(s) :  
  - combinationAuthorship:Person/4132        in entity eu.etaxonomy.cdm.model.name.TaxonName with id : 132501 
   -- entity belongs to cache(s) : {TC} 
 ----------- 

 Not In Cache Entities (*: NOT_FOUND, ?: COPY_ENTITY) 
  - ?[Representation#274].representations[java.util.HashSet].language[Language#273].name[LanguageString#4311].classification[Classification#10].[TaxonNode#62455] 
  - ?authorship[Person#4132].nomenclaturalReference[Reference#33035].name[TaxonName#132501].taxon[Taxon#165205].[TaxonNode#62455] 
  - ?[Representation#808].representations[java.util.HashSet].rank[Rank#800].name[TaxonName#132501].taxon[Taxon#165205].[TaxonNode#62455] 
 ~~~ 


 What I did in E+M (version 2019-10-31): 

 Open Session View 
 Search for "Salvia spinosa subsp. maroccana"    => 2 results 
 Open "... sec Euro+Med Plantbase ..." in NameEditor 
 Wait 
 Exchange taxon name for the opened taxon by searching in dialog for Salvia spinosa subsp. maroccana 
 Wait 
 In Session View open "Inspect Active Session" 

Back