Bug 510994 - NPE in
org.eclipse.jdt.internal.debug.ui.actions.RetargetToggleTracepointAction

Change-Id: I71a10e01f8cd8b8e7262f33e5c19b8390ad3938f
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargetToggleTracepointAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargetToggleTracepointAction.java
index 5666e2c..ba5d9dc 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargetToggleTracepointAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RetargetToggleTracepointAction.java
@@ -50,30 +50,30 @@
 		ISelection sel = BreakpointToggleUtils.translateToMembers(part, selection);
     	if(sel instanceof IStructuredSelection) {
     		IMember member = (IMember) ((IStructuredSelection)sel).getFirstElement();
-    		int mtype = member.getElementType();
-    		if(mtype == IJavaElement.FIELD || mtype == IJavaElement.METHOD || mtype == IJavaElement.INITIALIZER) {
-    			// remove line breakpoint if present first
-    	    	if (selection instanceof ITextSelection) {
-    				ITextSelection ts = (ITextSelection) selection;
-					
-					CompilationUnit unit = BreakpointToggleUtils.parseCompilationUnit(BreakpointToggleUtils.getTextEditor(part));
-        			ValidBreakpointLocationLocator loc = new ValidBreakpointLocationLocator(unit, ts.getStartLine()+1, true, true);
-        			unit.accept(loc);
-        			if(loc.getLocationType() == ValidBreakpointLocationLocator.LOCATION_METHOD) {
-        				return true;
-        			}
-        			else if(loc.getLocationType() == ValidBreakpointLocationLocator.LOCATION_FIELD) {
-        				return false;
-        			}
-        			else if(loc.getLocationType() == ValidBreakpointLocationLocator.LOCATION_LINE) {
-        				return true;
-        			}
-    			} 
-    		}
+				if (member != null) {
+					int mtype = member.getElementType();
+					if (mtype == IJavaElement.FIELD || mtype == IJavaElement.METHOD || mtype == IJavaElement.INITIALIZER) {
+						// remove line breakpoint if present first
+						if (selection instanceof ITextSelection) {
+							ITextSelection ts = (ITextSelection) selection;
 
-    		if(member.getElementType() == IJavaElement.TYPE) {
-    			return false;
-    		}
+							CompilationUnit unit = BreakpointToggleUtils.parseCompilationUnit(BreakpointToggleUtils.getTextEditor(part));
+							ValidBreakpointLocationLocator loc = new ValidBreakpointLocationLocator(unit, ts.getStartLine() + 1, true, true);
+							unit.accept(loc);
+							if (loc.getLocationType() == ValidBreakpointLocationLocator.LOCATION_METHOD) {
+								return true;
+							} else if (loc.getLocationType() == ValidBreakpointLocationLocator.LOCATION_FIELD) {
+								return false;
+							} else if (loc.getLocationType() == ValidBreakpointLocationLocator.LOCATION_LINE) {
+								return true;
+							}
+						}
+					}
+
+					if (member.getElementType() == IJavaElement.TYPE) {
+						return false;
+					}
+				}
 		}
 		return false;
 		}