delete is only called for already persisted objects
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / handler / DeleteHandler.java
index 03bb72ac5b99d622a47d6dd7db45be931d731c0d..206f0d518538d97a4811bb5fbda4973798a6e16c 100644 (file)
@@ -110,37 +110,51 @@ public class DeleteHandler extends AbstractHandler {
                                        if (object instanceof SpecimenOrObservationBase){
                                                
                                                IOccurrenceService service = controller.getOccurrenceService();
-                                               service.load(((SpecimenOrObservationBase) object).getUuid());
-                                               result = service.delete((SpecimenOrObservationBase)object);
+                                               SpecimenOrObservationBase persistedObject = service.load(((SpecimenOrObservationBase) object).getUuid());
+                                               if (persistedObject != null){
+                                                       result = service.delete(persistedObject);
+                                               } 
                                        } else if (object instanceof Reference){
                                                IReferenceService service = controller.getReferenceService();
-                                               service.load(((Reference) object).getUuid());
-                                               result = service.delete((Reference)object);
+                                               
+                                               Reference persistedObject = service.load(((Reference) object).getUuid());
+                                               if (persistedObject != null){
+                                                       result = service.delete(persistedObject);
+                                               }
+                                               
                                        } else if (object instanceof Group){
                                                IGroupService service = controller.getGroupService();
-                                               service.load(((Group) object).getUuid());
-                                               result = service.delete((Group) object);
+                                               Group persistedObject = service.load(((Group) object).getUuid());
+                                               if (persistedObject != null){
+                                                       result = service.delete(persistedObject);
+                                               }
                                        }else if (object instanceof User){
                                                IUserService service = controller.getUserService();
-                                               service.load(((User) object).getUuid());
-                                               result = service.delete((User) object);
+                                               User persistedObject = service.load(((User) object).getUuid());
+                                               if (persistedObject != null){
+                                                       result = service.delete(persistedObject);
+                                               }
                                        } else if (object instanceof TaxonNameBase){
                                                INameService service = controller.getNameService();
                                                TaxonNameBase name = service.load(((TaxonNameBase) object).getUuid());
-                                               NameDeletionConfigurator config = new NameDeletionConfigurator();
-                                               
-                                               result = service.delete(name, config);
+                                               if (name != null){
+                                                       NameDeletionConfigurator config = new NameDeletionConfigurator();
+                                                       
+                                                       result = service.delete(name, config);
+                                               } 
                                        } else if (object instanceof TaxonBase){
                                                ITaxonService service = controller.getTaxonService();
-                                               service.load(((TaxonBase) object).getUuid());
-                                               if (object instanceof Taxon){
-                                                       result = service.deleteTaxon((Taxon)object, null, null);
-                                               }else{
-                                                       result = service.deleteSynonym((Synonym)object, null);
+                                               TaxonBase taxonBase = service.load(((TaxonBase) object).getUuid());
+                                               if (taxonBase != null){
+                                                       if (object instanceof Taxon){
+                                                               result = service.deleteTaxon((Taxon)object, null, null);
+                                                       }else{
+                                                               result = service.deleteSynonym((Synonym)object, null);
+                                                       }
                                                }
                                        } else if (object instanceof TeamOrPersonBase){
                                                IAgentService service = controller.getAgentService();
-                                               object = service.load(((TeamOrPersonBase) object).getUuid());
+                                               TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
                                                result = service.delete((TeamOrPersonBase)object);
                                        }
                                } catch (Exception e){