tmf: Fix NullPointerExeptions in Histogram view
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Tue, 3 Dec 2013 20:36:09 +0000 (15:36 -0500)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Wed, 4 Dec 2013 17:20:20 +0000 (12:20 -0500)
These NPEs happens when clicking or dragging the mouse in the
histogram windows before any data is available in the scaled data
instance.

Change-Id: I57efdb03cd53e2198580fa6c0ed047fc2dc4c3ac
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/19268
Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com>
IP-Clean: Patrick Tasse <patrick.tasse@gmail.com>
Tested-by: Hudson CI
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/histogram/FullTraceHistogram.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/histogram/Histogram.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/histogram/TimeRangeHistogram.java

index 12d7a29a5cffd6b7ce709feb535af7f1274f15f1..ebb16cba993905b9ebaf451bfa6c2f4adfb981b0 100644 (file)
@@ -108,7 +108,7 @@ public class FullTraceHistogram extends Histogram {
 
     @Override
     public void mouseDown(MouseEvent event) {
-        if (fDragState == DRAG_NONE && fDataModel.getNbEvents() != 0) {
+        if (fScaledData != null && fDragState == DRAG_NONE && fDataModel.getNbEvents() != 0) {
             if (event.button == 2 || (event.button == 1 && (event.stateMask & SWT.MODIFIER_MASK) == SWT.CTRL)) {
                 fDragState = DRAG_RANGE;
                 fDragButton = event.button;
index 823789c4fa57a59fe0683ed6e196fa90d63287f6..b2882d7ea10e28971ff478dbfb1dfb87d782ab74 100644 (file)
@@ -778,6 +778,10 @@ public abstract class Histogram implements ControlListener, PaintListener, KeyLi
      */
     protected void drawTimeRangeWindow(GC imageGC, long rangeStartTime, long rangeDuration) {
 
+        if (fScaledData == null) {
+            return;
+        }
+
         // Map times to histogram coordinates
         long bucketSpan = Math.max(fScaledData.fBucketDuration, 1);
         long startTime = Math.min(rangeStartTime, rangeStartTime + rangeDuration);
@@ -834,7 +838,7 @@ public abstract class Histogram implements ControlListener, PaintListener, KeyLi
 
     @Override
     public void mouseDown(final MouseEvent event) {
-        if (event.button == 1 && fDragState == DRAG_NONE && fDataModel.getNbEvents() != 0) {
+        if (fScaledData != null && event.button == 1 && fDragState == DRAG_NONE && fDataModel.getNbEvents() != 0) {
             fDragState = DRAG_SELECTION;
             fDragButton = event.button;
             if ((event.stateMask & SWT.MODIFIER_MASK) == SWT.SHIFT) {
index e5d5b22b4ce5a5c86928bd1d97df1a4371e8aefc..04b99e932eb4b83a3aaf05d853681f15f7bce37d 100644 (file)
@@ -114,7 +114,7 @@ public class TimeRangeHistogram extends Histogram {
 
     @Override
     public void mouseDown(MouseEvent event) {
-        if (fDragState == DRAG_NONE && fDataModel.getNbEvents() != 0) {
+        if (fScaledData != null && fDragState == DRAG_NONE && fDataModel.getNbEvents() != 0) {
             if (event.button == 2 || (event.button == 1 && (event.stateMask & SWT.MODIFIER_MASK) == SWT.CTRL)) {
                 fDragState = DRAG_RANGE;
                 fDragButton = event.button;
This page took 0.030669 seconds and 5 git commands to generate.