[NO ISSUE][OTH] Skip Result Metadata Updates on No Result
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Do not attempt to update the result metadata when a job
has no result to avoid NPE.
Change-Id: I1ccae6003048f45344a5b7843a25c61d6a7bd366
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3408
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Hussain Towaileb <hussainht@gmail.com>
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/JobResultCallback.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/JobResultCallback.java
index 30814c6..ecf92a0 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/JobResultCallback.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/JobResultCallback.java
@@ -25,6 +25,7 @@
import org.apache.hyracks.api.job.JobId;
import org.apache.hyracks.api.result.IJobResultCallback;
import org.apache.hyracks.api.result.ResultJobRecord;
+import org.apache.hyracks.api.result.ResultSetMetaData;
import org.apache.hyracks.control.cc.ClusterControllerService;
import org.apache.hyracks.control.cc.job.IJobManager;
import org.apache.hyracks.control.cc.job.JobRun;
@@ -53,7 +54,11 @@
}
private void updateResultMetadata(JobId jobId, ResultJobRecord resultJobRecord) {
- final ResultMetadata metadata = (ResultMetadata) resultJobRecord.getResultSetMetaData().getMetadata();
+ final ResultSetMetaData resultSetMetaData = resultJobRecord.getResultSetMetaData();
+ if (resultSetMetaData == null) {
+ return;
+ }
+ final ResultMetadata metadata = (ResultMetadata) resultSetMetaData.getMetadata();
metadata.setJobDuration(resultJobRecord.getJobDuration());
metadata.setProcessedObjects(getJobProccssedObjects(jobId));
}