Skip to content

Commit fbb7d46

Browse files
gzsomborSarikaSinha
authored andcommitted
Bug 578450 - Do not show 'set object label' for nulls and primitive values
Change-Id: If3664198151687dcf71a602c5035b0bfc9ee4c81 Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.debug/+/190176 Tested-by: Sarika Sinha <[email protected]> Reviewed-by: Sarika Sinha <[email protected]>
1 parent 91ad9d7 commit fbb7d46

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

org.eclipse.jdt.debug.ui/plugin.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,16 @@
935935
</objectState>
936936
</not>
937937
</visibility>
938+
</objectContribution>
939+
<objectContribution
940+
objectClass="org.eclipse.jdt.debug.core.IJavaVariable"
941+
id="org.eclipse.jdt.debug.ui.JavaVariableActions">
942+
<visibility>
943+
<objectState
944+
name="JavaVariableFilter"
945+
value="isNonNullObjectValue">
946+
</objectState>
947+
</visibility>
938948
<action
939949
class="org.eclipse.jdt.internal.debug.ui.actions.SetObjectLabelAction"
940950
enablesFor="1"

org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaVarActionFilter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,10 @@ else if (value.equals("isValuePrimitive")) { //$NON-NLS-1$
196196
if (value.equals("isObjectValue")) { //$NON-NLS-1$
197197
return varValue != null && JDIObjectValue.class.isAssignableFrom(varValue.getClass());
198198
}
199+
if (value.equals("isNonNullObjectValue")) { //$NON-NLS-1$
200+
return varValue != null && JDIObjectValue.class.isAssignableFrom(varValue.getClass())
201+
&& !((JDIObjectValue) varValue).isNull();
202+
}
199203
if (value.equals("isFieldVariable")) { //$NON-NLS-1$
200204
return var instanceof IJavaFieldVariable;
201205
}
@@ -259,4 +263,4 @@ else if (name.equals("DetailFormatterFilter")) { //$NON-NLS-1$
259263
protected boolean isInstanceRetrievalAvailable(IJavaVariable var) {
260264
return ((IJavaDebugTarget)var.getDebugTarget()).supportsInstanceRetrieval() && !(var instanceof JDIReferenceListVariable);
261265
}
262-
}
266+
}

org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/SetObjectLabelAction.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ public void run(IAction action) {
5858
}
5959
if (value instanceof IJavaObject) {
6060
final IJavaObject javaValue = (IJavaObject) value;
61-
askForLabel(javaValue, name);
61+
if (!javaValue.isNull()) {
62+
askForLabel(javaValue, name);
63+
}
6264
}
6365
} catch (DebugException e) {
6466
return;

0 commit comments

Comments
 (0)