If an instance of CTFStreamInputReader already existed in a
CTFTraceReader, it was not getting closed after checking whether or not
it existed. This was causing a test failure on Windows in
CTFTraceGrowingTest.
Change-Id: Ia064d3270882515b32834456771a108970ce8f8e
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/62515
Reviewed-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Set<CTFStreamInput> streamInputs = stream.getStreamInputs();
for (CTFStreamInput streamInput : streamInputs) {
/*
Set<CTFStreamInput> streamInputs = stream.getStreamInputs();
for (CTFStreamInput streamInput : streamInputs) {
/*
+ * Create a reader to check if it already exists in the list. If it doesn't, add it.
- CTFStreamInputReader streamInputReader = new CTFStreamInputReader(checkNotNull(streamInput));
-
-
- /*
- * Add it to the group.
- */
- if (!fStreamInputReaders.contains(streamInputReader)) {
- streamInputReader.readNextEvent();
- fStreamInputReaders.add(streamInputReader);
- readers.add(streamInputReader);
+ try (CTFStreamInputReader streamInputReader = new CTFStreamInputReader(checkNotNull(streamInput))) {
+ if (!fStreamInputReaders.contains(streamInputReader)) {
+ CTFStreamInputReader streamInputReaderToAdd = new CTFStreamInputReader(checkNotNull(streamInput));
+ streamInputReaderToAdd.readNextEvent();
+ fStreamInputReaders.add(streamInputReaderToAdd);
+ readers.add(streamInputReaderToAdd);
+ }
+ } catch (IOException e) {
+ Activator.logError(e.getMessage(), e);