[ASTERIXDB-1982][FAIL] Fix DatasetPartitionWriter fail behavior

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Do not write an empty result partition on pipeline failure.

Change-Id: I1e065fd7e4204773e17d809b6e44059c709eb27b
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1891
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
BAD: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Yingyi Bu <buyingyi@gmail.com>
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/dataset/DatasetPartitionWriter.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/dataset/DatasetPartitionWriter.java
index 81f5551..0189735 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/dataset/DatasetPartitionWriter.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/dataset/DatasetPartitionWriter.java
@@ -98,14 +98,9 @@
 
     @Override
     public void fail() throws HyracksDataException {
-        try {
-            failed = true;
-            resultState.closeAndDelete();
-            resultState.abort();
-            registerResultPartitionLocation(false);
-        } catch (HyracksException e) {
-            throw new HyracksDataException(e);
-        }
+        failed = true;
+        resultState.closeAndDelete();
+        resultState.abort();
     }
 
     @Override
@@ -121,7 +116,9 @@
             resultState.close();
         }
         try {
-            manager.reportPartitionWriteCompletion(jobId, resultSetId, partition);
+            if (partitionRegistered) {
+                manager.reportPartitionWriteCompletion(jobId, resultSetId, partition);
+            }
         } catch (HyracksException e) {
             throw new HyracksDataException(e);
         }