From 48d2746e03f6b6d7fde23a154ee58b726e61b56d Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Wed, 18 Mar 2009 15:24:23 +0000 Subject: [PATCH] [269196] - [run control] [non-stop] NPE when StateChangeReason of IExecutionDMData is null --- .../dsf/debug/ui/viewmodel/launch/AbstractThreadVMNode.java | 5 ++++- .../src/org/eclipse/cdt/dsf/debug/service/IRunControl.java | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/AbstractThreadVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/AbstractThreadVMNode.java index a6f53060c75..1fbdaed82c9 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/AbstractThreadVMNode.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/AbstractThreadVMNode.java @@ -221,7 +221,10 @@ public abstract class AbstractThreadVMNode extends AbstractDMVMNode } protected void fillExecutionDataProperties(IPropertiesUpdate update, IExecutionDMData data) { - update.setProperty(ILaunchVMConstants.PROP_STATE_CHANGE_REASON, data.getStateChangeReason().name()); + StateChangeReason reason = data.getStateChangeReason(); + if (reason != null) { + update.setProperty(ILaunchVMConstants.PROP_STATE_CHANGE_REASON, data.getStateChangeReason().name()); + } } @Override diff --git a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IRunControl.java b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IRunControl.java index 15fc8a2355e..64c5881ad20 100644 --- a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IRunControl.java +++ b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IRunControl.java @@ -98,6 +98,12 @@ public interface IRunControl extends IDsfService * Display information for an execution context. */ public interface IExecutionDMData extends IDMData { + + /** + * Reason for the last change in execution state. Could be + * null if the service does not support tracking this + * information. + */ StateChangeReason getStateChangeReason(); }