Yingyi Bu has submitted this change and it was merged. Change subject: IFrameWriter.close() can be called if open() failed ......................................................................
IFrameWriter.close() can be called if open() failed Fix potential NPE in ResultWriterOperatorDescriptor should open() fail and close() be subsequently called Change-Id: I6f53258765719c30b132bf67680f280924b624be Reviewed-on: https://asterix-gerrit.ics.uci.edu/1832 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> BAD: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Yingyi Bu <[email protected]> --- M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java 1 file changed, 10 insertions(+), 8 deletions(-) Approvals: Yingyi Bu: Looks good to me, approved Jenkins: Verified; No violations found; No violations found; Verified diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java index d3120bb..78417ac 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java @@ -117,15 +117,17 @@ @Override public void close() throws HyracksDataException { - try { - if (!failed && frameOutputStream.getTupleCount() > 0) { - frameOutputStream.flush(datasetPartitionWriter); + if (datasetPartitionWriter != null) { + try { + if (!failed && frameOutputStream.getTupleCount() > 0) { + frameOutputStream.flush(datasetPartitionWriter); + } + } catch (Exception e) { + datasetPartitionWriter.fail(); + throw e; + } finally { + datasetPartitionWriter.close(); } - } catch (Exception e) { - datasetPartitionWriter.fail(); - throw e; - } finally { - datasetPartitionWriter.close(); } } -- To view, visit https://asterix-gerrit.ics.uci.edu/1832 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I6f53258765719c30b132bf67680f280924b624be Gerrit-PatchSet: 2 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Michael Blow <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: Yingyi Bu <[email protected]> Gerrit-Reviewer: Yingyi Bu <[email protected]>
