tmf: Bug 470851: Trace time range should include lost event end time
authorPatrick Tasse <patrick.tasse@gmail.com>
Tue, 23 Jun 2015 22:50:19 +0000 (18:50 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Fri, 3 Jul 2015 14:40:11 +0000 (10:40 -0400)
Change-Id: I273cf79f93f0718a30226d65e1558a7696ed3253
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/50754
Reviewed-by: Hudson CI
ctf/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/trace/CtfTmfTrace.java
tmf/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java
tmf/org.eclipse.tracecompass.tmf.core/META-INF/MANIFEST.MF
tmf/org.eclipse.tracecompass.tmf.core/pom.xml
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/parsers/custom/CustomTxtTrace.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/parsers/custom/CustomXmlTrace.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/TmfTrace.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/experiment/TmfExperiment.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/text/TextTrace.java

index e2ba2258253e2a84ece5c387e0acbfcc7ce98a3e..f517ff52ba3b1a7a886707b103bedf83cd5c87df 100644 (file)
@@ -365,7 +365,7 @@ public class CtfTmfTrace extends TmfTrace
             event = ctfContext.getCurrentEvent();
 
             if (event != null) {
-                updateAttributes(context, event.getTimestamp());
+                updateAttributes(context, event);
                 ctfContext.advance();
                 ctfContext.increaseRank();
             }
index 1f0b15627192ba605b1d07295ece8fe7753eb323..617985e797198eb63323a3a4a8122eb0efedd79e 100644 (file)
@@ -294,7 +294,7 @@ public class TmfXmlTraceStub extends TmfTrace {
          */
         ITmfTimestamp timestamp = new TmfNanoTimestamp(event.getTimestamp().getValue() / SECONDS_TO_NS);
         TmfEvent newEvent = new TmfEvent(this, ITmfContext.UNKNOWN_RANK, timestamp, eventType, eventFields);
-        updateAttributes(savedContext, event.getTimestamp());
+        updateAttributes(savedContext, event);
         context.increaseRank();
 
         return newEvent;
index 7de03eb7af30eb4851fe8d4fc5443910cb18c20b..06623063fbb001f1277d40c5184cf6d072a35d7d 100644 (file)
@@ -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: 1.1.0.qualifier
 Bundle-Localization: plugin
 Bundle-SymbolicName: org.eclipse.tracecompass.tmf.core;singleton:=true
 Bundle-Activator: org.eclipse.tracecompass.internal.tmf.core.Activator
index 4e2ac5d10dfa1e8ec3d4b323fdf54ba7e48dc17d..39a6f65c39c209a5170e4f5fcf7c1c7a473c9a3a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Copyright (C) 2011, Red Hat, Inc.
+   Copyright (C) 2011, 2015 Red Hat, Inc. and others.
 
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
@@ -18,7 +18,7 @@
   </parent>
 
   <artifactId>org.eclipse.tracecompass.tmf.core</artifactId>
-  <version>1.0.0-SNAPSHOT</version>
+  <version>1.1.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <name>Trace Compass TMF Core Plug-in</name>
index 4175d074fe871550d7f3558b3e1b532488806903..3c85eeb37a1dbb3a2828fc80382270ea2cc093cb 100644 (file)
@@ -234,7 +234,7 @@ public class CustomTxtTrace extends TmfTrace implements ITmfPersistentlyIndexabl
         final ITmfContext savedContext = new TmfContext(context.getLocation(), context.getRank());
         final CustomTxtEvent event = parse(context);
         if (event != null) {
-            updateAttributes(savedContext, event.getTimestamp());
+            updateAttributes(savedContext, event);
             context.increaseRank();
         }
         return event;
index 2485e2c8c584656f4cf07c3b4a88fe8f06283111..7da703416d679683728630ae23faff89b906327c 100644 (file)
@@ -235,7 +235,7 @@ public class CustomXmlTrace extends TmfTrace implements ITmfPersistentlyIndexabl
         final ITmfContext savedContext = new TmfContext(context.getLocation(), context.getRank());
         final CustomXmlEvent event = parse(context);
         if (event != null) {
-            updateAttributes(savedContext, event.getTimestamp());
+            updateAttributes(savedContext, event);
             context.increaseRank();
         }
         return event;
index e1ded36144778dc56f706ab6613bd182624f81ec..43f9b11411e3c5a1f1bcef3849b150237c7b9aae 100644 (file)
@@ -39,6 +39,8 @@ import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper;
 import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisManager;
 import org.eclipse.tracecompass.tmf.core.component.TmfEventProvider;
 import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
+import org.eclipse.tracecompass.tmf.core.event.ITmfLostEvent;
+import org.eclipse.tracecompass.tmf.core.event.TmfEvent;
 import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
 import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
 import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
@@ -553,8 +555,7 @@ public abstract class TmfTrace extends TmfEventProvider implements ITmfTrace, IT
         // parseEvent() does not update the context
         final ITmfEvent event = parseEvent(context);
         if (event != null) {
-            ITmfTimestamp timestamp = event.getTimestamp();
-            updateAttributes(context, timestamp);
+            updateAttributes(context, event);
             context.setLocation(getCurrentLocation());
             context.increaseRank();
         }
@@ -566,13 +567,31 @@ public abstract class TmfTrace extends TmfEventProvider implements ITmfTrace, IT
      *
      * @param context the current trace context
      * @param timestamp the corresponding timestamp
+     * @deprecated Use {@link #updateAttributes(ITmfContext, ITmfEvent)}
      */
+    @Deprecated
     protected synchronized void updateAttributes(final ITmfContext context, final @NonNull ITmfTimestamp timestamp) {
+        updateAttributes(context, new TmfEvent(this, context.getRank(), timestamp, null, null));
+    }
+
+    /**
+     * Update the trace attributes
+     *
+     * @param context the current trace context
+     * @param event the corresponding event
+     * @since 1.1
+     */
+    protected synchronized void updateAttributes(final ITmfContext context, final @NonNull ITmfEvent event) {
+        ITmfTimestamp timestamp = event.getTimestamp();
+        ITmfTimestamp endTime = timestamp;
+        if (event instanceof ITmfLostEvent) {
+            endTime = ((ITmfLostEvent) event).getTimeRange().getEndTime();
+        }
         if (fStartTime.equals(TmfTimestamp.BIG_BANG) || (fStartTime.compareTo(timestamp) > 0)) {
             fStartTime = timestamp;
         }
-        if (fEndTime.equals(TmfTimestamp.BIG_CRUNCH) || (fEndTime.compareTo(timestamp) < 0)) {
-            fEndTime = timestamp;
+        if (fEndTime.equals(TmfTimestamp.BIG_CRUNCH) || (fEndTime.compareTo(endTime) < 0)) {
+            fEndTime = endTime;
         }
         if (context.hasValidRank()) {
             long rank = context.getRank();
index 86f41710475eb44b6c2cd1b364be556f9897613d..59e1405beffbebd62abfdf8d18ac3aa67e528925 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2014 Ericsson, École Polytechnique de Montréal
+ * Copyright (c) 2009, 2015 Ericsson, École Polytechnique de Montréal
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -414,7 +414,7 @@ public class TmfExperiment extends TmfTrace implements ITmfPersistentlyIndexable
         if (trace != TmfExperimentContext.NO_TRACE) {
             event = expContext.getEvent(trace);
             if (event != null) {
-                updateAttributes(expContext, event.getTimestamp());
+                updateAttributes(expContext, event);
                 expContext.increaseRank();
                 expContext.setLastTrace(trace);
                 final ITmfContext traceContext = expContext.getContext(trace);
index 58a53d09313eb0063279cc1fcdf53516e8d11c37..6e0c1c24d070b2fb7ed6d9f1b9bfbe9192809ba5 100644 (file)
@@ -236,7 +236,7 @@ public abstract class TextTrace<T extends TextTraceEvent> extends TmfTrace imple
         TextTraceContext savedContext = new TextTraceContext(context.getLocation(), context.getRank());
         T event = parse((TextTraceContext) context);
         if (event != null) {
-            updateAttributes(savedContext, event.getTimestamp());
+            updateAttributes(savedContext, event);
             context.increaseRank();
         }
         return event;
This page took 0.040275 seconds and 5 git commands to generate.