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) {
             event = ctfContext.getCurrentEvent();
 
             if (event != null) {
-                updateAttributes(context, event.getTimestamp());
+                updateAttributes(context, event);
                 ctfContext.advance();
                 ctfContext.increaseRank();
             }
                 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);
          */
         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;
         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-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
 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"?>
 <!--
 <?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
 
    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>
   </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>
   <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) {
         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;
             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) {
         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;
             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.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;
 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) {
         // 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();
         }
             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
      *
      * @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) {
     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 (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();
         }
         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
  *
  * 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) {
         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);
                 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) {
         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;
             context.increaseRank();
         }
         return event;
This page took 0.03171 seconds and 5 git commands to generate.