diff options
author | Alexandre Montplaisir | 2014-04-10 22:53:21 +0000 |
---|---|---|
committer | Alexandre Montplaisir | 2014-04-16 22:35:36 +0000 |
commit | 6bd2f73ea4c7f44a694910cec5bbc664f9d601b5 (patch) | |
tree | 03a6a9e66b0f98a1756717e7a6b3c0016ed38032 /lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf | |
parent | 4c0f3a5faec0bfa08ff68f8f35303ef169ff4014 (diff) | |
download | org.eclipse.linuxtools-6bd2f73ea4c7f44a694910cec5bbc664f9d601b5.tar.gz org.eclipse.linuxtools-6bd2f73ea4c7f44a694910cec5bbc664f9d601b5.tar.xz org.eclipse.linuxtools-6bd2f73ea4c7f44a694910cec5bbc664f9d601b5.zip |
ctf: Make CTFTrace and its reader classes AutoCloseable
Basically just replace their dipose() method with close(). This
small change allows us to benefit from the compiler warnings for
when a resource is allocated locally in a method but never disposed.
Which then allows to find leaks. Many leaks ! Many tests were leaking
CTFTraceReaders and the like, but the biggest offender is probably the
validation methods in LttngKernelTrace and LttngUstTrace: trying to
validate a non-CTF trace could potentially leak a number of file
descriptors equal to the number of files in that trace(!)
Change-Id: I7e54416b608992a14a7bfd3cd29ffb8dc3cee898
Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-on: https://git.eclipse.org/r/24986
Tested-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Diffstat (limited to 'lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf')
4 files changed, 18 insertions, 14 deletions
diff --git a/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTrace.java b/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTrace.java index a0fc0fca51..d0d63dcc1d 100644 --- a/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTrace.java +++ b/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTrace.java @@ -61,7 +61,7 @@ import org.eclipse.linuxtools.internal.ctf.core.event.metadata.exceptions.ParseE * @author Matthew Khouzam * @version $Revision: 1.0 $ */ -public class CTFTrace implements IDefinitionScope { +public class CTFTrace implements IDefinitionScope, AutoCloseable { @SuppressWarnings("nls") @Override @@ -232,9 +232,10 @@ public class CTFTrace implements IDefinitionScope { /** * Dispose the trace * - * @since 2.0 + * @since 3.0 */ - public void dispose() { + @Override + public void close() { for (FileInputStream fis : fFileInputStreams) { if (fis != null) { try { diff --git a/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTraceReader.java b/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTraceReader.java index 429767dac0..75a042604c 100644 --- a/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTraceReader.java +++ b/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTraceReader.java @@ -30,7 +30,7 @@ import org.eclipse.linuxtools.internal.ctf.core.trace.StreamInputReaderTimestamp * @author Matthew Khouzam * @author Alexandre Montplaisir */ -public class CTFTraceReader { +public class CTFTraceReader implements AutoCloseable { private static final int MIN_PRIO_SIZE = 16; @@ -124,12 +124,13 @@ public class CTFTraceReader { /** * Dispose the CTFTraceReader * - * @since 2.0 + * @since 3.0 */ - public void dispose() { + @Override + public void close() { for (StreamInputReader reader : fStreamInputReaders) { if (reader != null) { - reader.dispose(); + reader.close(); } } fStreamInputReaders.clear(); diff --git a/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputPacketReader.java b/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputPacketReader.java index 9f25726b4f..28d29142fc 100644 --- a/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputPacketReader.java +++ b/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputPacketReader.java @@ -36,7 +36,7 @@ import org.eclipse.linuxtools.internal.ctf.core.trace.StreamInputPacketIndexEntr * @author Matthew Khouzam * @author Simon Marchi */ -public class StreamInputPacketReader implements IDefinitionScope { +public class StreamInputPacketReader implements IDefinitionScope, AutoCloseable { // ------------------------------------------------------------------------ // Attributes @@ -144,9 +144,10 @@ public class StreamInputPacketReader implements IDefinitionScope { /** * Dispose the StreamInputPacketReader * - * @since 2.0 + * @since 3.0 */ - public void dispose() { + @Override + public void close() { fBitBuffer.setByteBuffer(null); } diff --git a/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputReader.java b/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputReader.java index 8ee435f5af..f88f4b22aa 100644 --- a/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputReader.java +++ b/lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputReader.java @@ -28,7 +28,7 @@ import org.eclipse.linuxtools.internal.ctf.core.trace.StreamInputPacketIndexEntr * @author Matthew Khouzam * @author Simon Marchi */ -public class StreamInputReader { +public class StreamInputReader implements AutoCloseable { // ------------------------------------------------------------------------ // Attributes @@ -96,10 +96,11 @@ public class StreamInputReader { /** * Dispose the StreamInputReader * - * @since 2.0 + * @since 3.0 */ - public void dispose() { - fPacketReader.dispose(); + @Override + public void close() { + fPacketReader.close(); } // ------------------------------------------------------------------------ |