From: Alexandre Montplaisir Date: Tue, 7 Jul 2015 20:00:17 +0000 (-0400) Subject: btf: Remove AutoCloseable from BtfTrace X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=d9aa847c586f48108e0843c9a042c0c0418dfa7c;p=deliverable%2Ftracecompass.git btf: Remove AutoCloseable from BtfTrace Despite many great advantages, AutoCloseable does not work well with subclasses of ITmfTrace, because it would imply that such objects are not exposed publicly by other objects tracking them. This is not the case in TMF, as many objects expose ITmfTrace's through getters. Using instead TmfTrace's standard dispose() method is more appropriate in subclasses. Change-Id: I1d342d15dba7f8f6e75985f8aee6ed159838d424 Signed-off-by: Alexandre Montplaisir Reviewed-on: https://git.eclipse.org/r/51540 Reviewed-by: Hudson CI Reviewed-by: Bernd Hufmann Tested-by: Bernd Hufmann --- diff --git a/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/trace/BtfTraceTest.java b/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/trace/BtfTraceTest.java index 2ac8625b36..b4ec8f7b47 100644 --- a/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/trace/BtfTraceTest.java +++ b/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/trace/BtfTraceTest.java @@ -13,7 +13,6 @@ package org.eclipse.tracecompass.btf.core.tests.trace; import static org.junit.Assert.*; -import java.io.IOException; import java.util.Map; import org.eclipse.tracecompass.btf.core.tests.utils.BtfTestTrace; @@ -50,9 +49,7 @@ public class BtfTraceTest { */ @After public void cleanup() { - try { - fixture.close(); - } catch (IOException e) {} + fixture.dispose(); } /** diff --git a/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/utils/TestBtfTrace.java b/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/utils/TestBtfTrace.java index 1fcf4f48a8..47290a436b 100644 --- a/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/utils/TestBtfTrace.java +++ b/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/utils/TestBtfTrace.java @@ -12,8 +12,6 @@ package org.eclipse.tracecompass.btf.core.tests.utils; -import java.io.IOException; - import org.eclipse.tracecompass.btf.core.trace.BtfTrace; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; @@ -36,26 +34,26 @@ public class TestBtfTrace { * exception */ public static void main(String[] args) throws TmfTraceException { - try (BtfTrace trace = new BtfTrace()) { - trace.initTrace(null, BtfTestTrace.BTF_TEST.getFullPath(), null); - System.out.println(trace.toString()); - ITmfContext ctx = trace.seekEvent(0); - ITmfContext ctx1 = trace.seekEvent(10); - ITmfEvent event = trace.getNext(ctx); - ITmfEvent compare = null; - while (event != null) { - if (event.getRank() == 10) { - compare = event; - } - printEvent(event); - event = trace.getNext(ctx); + BtfTrace trace = new BtfTrace(); + trace.initTrace(null, BtfTestTrace.BTF_TEST.getFullPath(), null); + System.out.println(trace.toString()); + + ITmfContext ctx = trace.seekEvent(0); + ITmfContext ctx1 = trace.seekEvent(10); + ITmfEvent event = trace.getNext(ctx); + ITmfEvent compare = null; + while (event != null) { + if (event.getRank() == 10) { + compare = event; } - ITmfEvent other = trace.getNext(ctx1); - printEvent(other); - printEvent(compare); - } catch (IOException e) { - e.printStackTrace(); + printEvent(event); + event = trace.getNext(ctx); } + ITmfEvent other = trace.getNext(ctx1); + printEvent(other); + printEvent(compare); + + trace.dispose(); } private static void printEvent(ITmfEvent event) { diff --git a/btf/org.eclipse.tracecompass.btf.core/META-INF/MANIFEST.MF b/btf/org.eclipse.tracecompass.btf.core/META-INF/MANIFEST.MF index 47338932ec..be67a5674b 100644 --- a/btf/org.eclipse.tracecompass.btf.core/META-INF/MANIFEST.MF +++ b/btf/org.eclipse.tracecompass.btf.core/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 2.0.0.qualifier Bundle-Localization: plugin Bundle-SymbolicName: org.eclipse.tracecompass.btf.core;singleton:=true Bundle-Activator: org.eclipse.tracecompass.btf.core.Activator diff --git a/btf/org.eclipse.tracecompass.btf.core/pom.xml b/btf/org.eclipse.tracecompass.btf.core/pom.xml index 43fbd30c72..0f4d5e1e92 100644 --- a/btf/org.eclipse.tracecompass.btf.core/pom.xml +++ b/btf/org.eclipse.tracecompass.btf.core/pom.xml @@ -18,7 +18,6 @@ org.eclipse.tracecompass.btf.core - 1.0.0-SNAPSHOT eclipse-plugin Best Trace Format Plug-in diff --git a/btf/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfTrace.java b/btf/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfTrace.java index 7f92f718dd..bffcbe1059 100644 --- a/btf/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfTrace.java +++ b/btf/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfTrace.java @@ -59,7 +59,7 @@ import com.google.common.collect.ImmutableMap; * * @author Matthew Khouzam */ -public class BtfTrace extends TmfTrace implements ITmfPersistentlyIndexable, ITmfTraceProperties, AutoCloseable { +public class BtfTrace extends TmfTrace implements ITmfPersistentlyIndexable, ITmfTraceProperties { private static final int MAX_FIELDS = 7; @@ -450,10 +450,15 @@ public class BtfTrace extends TmfTrace implements ITmfPersistentlyIndexable, ITm } @Override - public void close() throws IOException { - if (fFileInput != null) { - fFileInput.close(); + public synchronized void dispose() { + RandomAccessFile raf = fFileInput; + if (raf != null) { + try { + raf.close(); + } catch (IOException e) { + } } + super.dispose(); } }