FIXED - bug 246921: NPE in ChangeGenerator when extracting constant
https://bugs.eclipse.org/bugs/show_bug.cgi?id=246921 patch from Tom Ball
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
index f6097db..f692980 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
@@ -232,8 +232,10 @@
 			targetLocation = getFileLocationOfEmptyTranslationUnit(modification.getTargetNode());
 			String currentFile = targetLocation.getFileName();
 			IPath implPath = new Path(currentFile);
-			IFile relevantFile = ResourcesPlugin.getWorkspace().getRoot()
-			.getFileForLocation(implPath);
+			IFile relevantFile = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(implPath);
+			if (relevantFile == null) { // if not in workspace
+			    throw new UnhandledASTModificationException(modification);
+			}
 			MultiTextEdit edit;
 			if (changes.containsKey(relevantFile)) {
 				edit = changes.get(relevantFile);