diff --git a/numass-main/src/main/java/inr/numass/workspace/NumassFitScanSummaryTask.java b/numass-main/src/main/java/inr/numass/workspace/NumassFitScanSummaryTask.java index 339b029f..164753d7 100644 --- a/numass-main/src/main/java/inr/numass/workspace/NumassFitScanSummaryTask.java +++ b/numass-main/src/main/java/inr/numass/workspace/NumassFitScanSummaryTask.java @@ -23,6 +23,7 @@ import hep.dataforge.tables.TableTransform; import hep.dataforge.workspace.AbstractTask; import hep.dataforge.workspace.TaskModel; +import java.io.IOException; import java.io.OutputStream; import java.util.Map; @@ -81,12 +82,12 @@ public class NumassFitScanSummaryTask extends AbstractTask { Table res = TableTransform.sort(builder.build(), "msterile2", true); - OutputStream stream = buildActionOutput(context, nodeName); - - String head = "Sterile neutrino mass scan summary\n" + meta.toString(); - - - ColumnedDataWriter.writeDataSet(stream, res, head); + try (OutputStream stream = buildActionOutput(context, nodeName)) { + String head = "Sterile neutrino mass scan summary\n" + meta.toString(); + ColumnedDataWriter.writeDataSet(stream, res, head); + } catch (IOException e) { + getLogger(meta).error("Failed to close output stream", e); + } return res; } diff --git a/numass-storage/src/main/java/inr/numass/storage/NumassDataLoader.java b/numass-storage/src/main/java/inr/numass/storage/NumassDataLoader.java index 79a78a48..134dfc8f 100644 --- a/numass-storage/src/main/java/inr/numass/storage/NumassDataLoader.java +++ b/numass-storage/src/main/java/inr/numass/storage/NumassDataLoader.java @@ -242,6 +242,7 @@ public class NumassDataLoader extends AbstractLoader implements ObjectLoader MAX_EVENTS_PER_POINT) { pointTime = events.get(events.size() - 1).getTime() - events.get(0).getTime(); } + return new RawNMPoint(u, u, events, pointTime, diff --git a/numass-storage/src/main/java/inr/numass/storage/NumassDataReader.java b/numass-storage/src/main/java/inr/numass/storage/NumassDataReader.java index e5763a11..b2cc84ff 100644 --- a/numass-storage/src/main/java/inr/numass/storage/NumassDataReader.java +++ b/numass-storage/src/main/java/inr/numass/storage/NumassDataReader.java @@ -15,18 +15,11 @@ */ package inr.numass.storage; -import inr.numass.storage.NMEvent; -import inr.numass.storage.RawNMFile; -import inr.numass.storage.RawNMPoint; import hep.dataforge.data.FileDataFactory; import hep.dataforge.data.binary.Binary; import hep.dataforge.meta.Meta; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; + +import java.io.*; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; @@ -38,8 +31,8 @@ import java.util.Scanner; */ public class NumassDataReader { - private String name; private final InputStream stream; + private String name; private double HVdev = 2.468555393226049; private boolean noUset = false; @@ -66,7 +59,9 @@ public class NumassDataReader { } public RawNMFile read() throws IOException { - return readFile(name); + RawNMFile res = readFile(name); + stream.close(); + return res; } private int[] readBlock(int length) throws IOException {