ATLAS-4431: Random NPE when retrieving tasks - #2 - added additional null check
Signed-off-by: Sarath Subramanian <sarath@apache.org>
diff --git a/repository/src/main/java/org/apache/atlas/tasks/TaskRegistry.java b/repository/src/main/java/org/apache/atlas/tasks/TaskRegistry.java
index 32e0ad9..6f770ed 100644
--- a/repository/src/main/java/org/apache/atlas/tasks/TaskRegistry.java
+++ b/repository/src/main/java/org/apache/atlas/tasks/TaskRegistry.java
@@ -181,10 +181,25 @@
private AtlasTask toAtlasTask(AtlasVertex v) {
AtlasTask ret = new AtlasTask();
- ret.setGuid(v.getProperty(Constants.TASK_GUID, String.class));
- ret.setType(v.getProperty(Constants.TASK_TYPE, String.class));
- ret.setStatus(v.getProperty(Constants.TASK_STATUS, String.class));
- ret.setCreatedBy(v.getProperty(Constants.TASK_CREATED_BY, String.class));
+ String guid = v.getProperty(Constants.TASK_GUID, String.class);
+ if (guid != null) {
+ ret.setGuid(guid);
+ }
+
+ String type = v.getProperty(Constants.TASK_TYPE, String.class);
+ if (type != null) {
+ ret.setType(type);
+ }
+
+ String status = v.getProperty(Constants.TASK_STATUS, String.class);
+ if (status != null) {
+ ret.setStatus(status);
+ }
+
+ String createdBy = v.getProperty(Constants.TASK_CREATED_BY, String.class);
+ if (createdBy != null) {
+ ret.setCreatedBy(createdBy);
+ }
Long createdTime = v.getProperty(Constants.TASK_CREATED_TIME, Long.class);
if (createdTime != null) {
@@ -207,10 +222,19 @@
}
String parametersJson = v.getProperty(Constants.TASK_PARAMETERS, String.class);
- ret.setParameters(AtlasType.fromJson(parametersJson, Map.class));
+ if (parametersJson != null) {
+ ret.setParameters(AtlasType.fromJson(parametersJson, Map.class));
+ }
- ret.setAttemptCount(v.getProperty(Constants.TASK_ATTEMPT_COUNT, Integer.class));
- ret.setErrorMessage(v.getProperty(Constants.TASK_ERROR_MESSAGE, String.class));
+ Integer attemptCount = v.getProperty(Constants.TASK_ATTEMPT_COUNT, Integer.class);
+ if (attemptCount != null) {
+ ret.setAttemptCount(attemptCount);
+ }
+
+ String errorMessage = v.getProperty(Constants.TASK_ERROR_MESSAGE, String.class);
+ if (errorMessage != null) {
+ ret.setErrorMessage(errorMessage);
+ }
return ret;
}