- fixed ClassCastException
authorPatric Plitzner <p.plitzner@bgbm.org>
Thu, 4 Dec 2014 09:27:37 +0000 (09:27 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Thu, 4 Dec 2014 09:27:37 +0000 (09:27 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java

index 28a59e19db07323b7cfe815e440893c87fbaa530..3cfb86048935c2a9a2a3c848a731a168406f37e8 100644 (file)
@@ -36,6 +36,8 @@ import org.eclipse.ui.handlers.IHandlerService;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
@@ -79,8 +81,8 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
         //TODO implement service method for this which is just used in the label provider
         Collection<TaxonBase<?>> associatedTaxa = new HashSet<TaxonBase<?>>();
         for (IndividualsAssociation individualsAssociation : individualsAssociations) {
-            if(individualsAssociation.getInDescription() instanceof TaxonDescription){
-                TaxonDescription taxonDescription = (TaxonDescription)individualsAssociation.getInDescription();
+            if(individualsAssociation.getInDescription().isInstanceOf(TaxonDescription.class)){
+                TaxonDescription taxonDescription = HibernateProxyHelper.deproxy(individualsAssociation.getInDescription(), TaxonDescription.class);
                 associatedTaxa.add(taxonDescription.getTaxon());
             }
         }
@@ -100,8 +102,8 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
             for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) {
                 Set taxa = taxonNameBase.getTaxa();
                 for (Object taxon : taxa) {
-                    if(taxon instanceof TaxonBase<?>){
-                        typedTaxa.add((TaxonBase<?>) taxon);
+                    if(taxon instanceof CdmBase && ((CdmBase)taxon).isInstanceOf(TaxonBase.class)){
+                        typedTaxa.add(HibernateProxyHelper.deproxy(taxon, TaxonBase.class));
                     }
                 }
             }