From 76fd8d054358c46b3fb63fd4235dabd5b553e9e9 Mon Sep 17 00:00:00 2001 From: Bernd Hufmann Date: Wed, 21 Aug 2013 15:26:30 -0400 Subject: [PATCH] lttng: fix NPE in channel dialog without kernel tracer (bug 415617) It also fixes the enablement and selection of the per PID/UID buffer buttons for the case a kernel tracer is not available. Change-Id: I01ce496914c70f5330beab478c0ce4528cf8df59 Signed-off-by: Bernd Hufmann Reviewed-on: https://git.eclipse.org/r/15754 Tested-by: Hudson CI Reviewed-by: Matthew Khouzam IP-Clean: Matthew Khouzam Tested-by: Matthew Khouzam Reviewed-by: Bernd Hufmann IP-Clean: Bernd Hufmann Tested-by: Bernd Hufmann --- .../control/dialogs/EnableChannelDialog.java | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/org.eclipse.linuxtools.lttng2.ui/src/org/eclipse/linuxtools/internal/lttng2/ui/views/control/dialogs/EnableChannelDialog.java b/org.eclipse.linuxtools.lttng2.ui/src/org/eclipse/linuxtools/internal/lttng2/ui/views/control/dialogs/EnableChannelDialog.java index 9a927d0f06..08c1013904 100644 --- a/org.eclipse.linuxtools.lttng2.ui/src/org/eclipse/linuxtools/internal/lttng2/ui/views/control/dialogs/EnableChannelDialog.java +++ b/org.eclipse.linuxtools.lttng2.ui/src/org/eclipse/linuxtools/internal/lttng2/ui/views/control/dialogs/EnableChannelDialog.java @@ -424,25 +424,9 @@ public class EnableChannelDialog extends Dialog implements IEnableChannelDialog if (fTargetNodeComponent.isBufferTypeConfigSupported()) { fSharedBuffersButton.setEnabled(false); - fUIDBuffersButton.setEnabled(false); - fPIDBuffersButton.setEnabled(false); - - if (fDomain.getBufferType() != null) { - switch (fDomain.getBufferType()) { - case BUFFER_PER_PID: - fPIDBuffersButton.setSelection(true); - break; - case BUFFER_PER_UID: - fUIDBuffersButton.setSelection(true); - break; - case BUFFER_SHARED: - fSharedBuffersButton.setSelection(true); - break; - //$CASES-OMITTED$ - default: - break; - } - } + fUIDBuffersButton.setEnabled(!fHasKernel); + fPIDBuffersButton.setEnabled(!fHasKernel); + setBufferTypeButtonSelection(); } } @@ -585,8 +569,27 @@ public class EnableChannelDialog extends Dialog implements IEnableChannelDialog fNumberOfSubBuffersText.setText(DEFAULT_TEXT); fNumberOfSubBuffersText.setForeground(getShell().getDisplay().getSystemColor(SWT.COLOR_GRAY)); if (fTargetNodeComponent.isBufferTypeConfigSupported()) { - fPIDBuffersButton.setSelection(false); - fUIDBuffersButton.setSelection(false); + setBufferTypeButtonSelection(); } } + + private void setBufferTypeButtonSelection() { + if ((fDomain != null) && fDomain.getBufferType() != null) { + switch (fDomain.getBufferType()) { + case BUFFER_PER_PID: + fPIDBuffersButton.setSelection(true); + break; + case BUFFER_PER_UID: + fUIDBuffersButton.setSelection(true); + break; + case BUFFER_SHARED: + fSharedBuffersButton.setSelection(true); + break; + //$CASES-OMITTED$ + default: + break; + } + } + } + } -- 2.34.1