From: Patrick Plitzner
Date: Mon, 8 Aug 2016 14:35:04 +0000 (+0200)
Subject: ref #5616 Fix possible NPE for BulkEditor inputs
X-Git-Tag: 4.3.0^2~89
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/222d6e76f20602bf44705966308040230c08ec5f
ref #5616 Fix possible NPE for BulkEditor inputs
---
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
index cb0b8710d..ee8a765bb 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
@@ -10,7 +10,6 @@
package eu.etaxonomy.taxeditor.bulkeditor.input;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -59,8 +58,6 @@ public abstract class AbstractBulkEditorInput extends CdmEnt
private IEntityCreator entityCreator;
private final ConversationHolder conversation;
- private static Class serviceClass;
-
public AbstractBulkEditorInput() {
super(true);
this.conversation = CdmStore.createConversation();
@@ -103,16 +100,7 @@ public abstract class AbstractBulkEditorInput extends CdmEnt
*/
protected abstract List listEntities(IIdentifiableEntityServiceConfigurator configurator);
- /**
- * loadEntity
- *
- * @param entityUuid a {@link java.util.UUID} object.
- * @return a T object.
- */
- protected T loadEntity(UUID entityUuid) {
- List propertyPaths = Arrays.asList(new String[]{});
- return (T) CdmStore.getService(serviceClass).load(entityUuid, propertyPaths);
- }
+ protected abstract T loadEntity(UUID entityUuid);
private void setEntityUuid(UUID entityUuid){
this.entityUuid = entityUuid;
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
index f7f65de9f..26e12964f 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
@@ -9,11 +9,14 @@
*/
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
@@ -171,4 +174,12 @@ public class AgentEditorInput extends AbstractBulkEditorInput
}
+ @Override
+ protected TeamOrPersonBase loadEntity(UUID entityUuid) {
+ List propertyPaths = Arrays.asList(new String[]{});
+ return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), TeamOrPersonBase.class);
+ }
+
+
+
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java
index 008293998..b86856244 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java
@@ -10,11 +10,15 @@
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
+import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.IGroupService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.Group;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.GroupCreator;
@@ -120,6 +124,12 @@ public class GroupEditorInput extends AbstractBulkEditorInput {
}
+ @Override
+ protected Group loadEntity(UUID entityUuid) {
+ List propertyPaths = Arrays.asList(new String[]{});
+ return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), Group.class);
+ }
+
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/MediaEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/MediaEditorInput.java
index 6f3ccb262..2af42543a 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/MediaEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/MediaEditorInput.java
@@ -9,7 +9,9 @@
*/
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IMediaService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -91,4 +93,11 @@ public class MediaEditorInput extends AbstractBulkEditorInput {
return sortProviders;
}
+
+ @Override
+ protected Media loadEntity(UUID entityUuid) {
+ List propertyPaths = Arrays.asList(new String[]{});
+ return CdmStore.getService(IMediaService.class).load(entityUuid, propertyPaths);
+ }
+
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
index 51568f5cb..1cc24918e 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
@@ -10,7 +10,6 @@
package eu.etaxonomy.taxeditor.bulkeditor.input;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
@@ -180,6 +179,13 @@ public class NameEditorInput extends AbstractBulkEditorInput {
}
+ @Override
+ protected TaxonNameBase loadEntity(UUID entityUuid) {
+ List propertyPaths = Arrays.asList(new String[]{});
+ return CdmStore.getService(INameService.class).load(entityUuid, getPropertyPaths());
+ }
+
+
private List getPropertyPaths(){
List nameBasePropertyPaths = Arrays.asList(new String[] {
"name.descriptions",
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
index 929379d27..5f2077240 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
@@ -10,7 +10,9 @@
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -173,4 +175,11 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput propertyPaths = Arrays.asList(new String[]{});
+ return CdmStore.getService(IOccurrenceService.class).load(entityUuid, propertyPaths);
+ }
+
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java
index 72dd138a4..46ce65fbe 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java
@@ -10,7 +10,9 @@
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IUserService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -121,6 +123,14 @@ public class UserEditorInput extends AbstractBulkEditorInput {
public void merge() {
}
+
+
+ @Override
+ protected User loadEntity(UUID entityUuid) {
+ List propertyPaths = Arrays.asList(new String[]{});
+ return CdmStore.getService(IUserService.class).load(entityUuid, propertyPaths);
+ }
+
}