Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandre Montplaisir2014-04-10 22:53:21 +0000
committerAlexandre Montplaisir2014-04-16 22:35:36 +0000
commit6bd2f73ea4c7f44a694910cec5bbc664f9d601b5 (patch)
tree03a6a9e66b0f98a1756717e7a6b3c0016ed38032 /lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf
parent4c0f3a5faec0bfa08ff68f8f35303ef169ff4014 (diff)
downloadorg.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')
-rw-r--r--lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTrace.java7
-rw-r--r--lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTraceReader.java9
-rw-r--r--lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputPacketReader.java7
-rw-r--r--lttng/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputReader.java9
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();
}
// ------------------------------------------------------------------------

Back to the top