ReverseScanner was corrected to not produce exceptions in case of incorrect string (null returned from getSTring() method).
This is important for the situations then code completion was invoked inside a string like: 'stringStart <cursorPosition> stringEnd'
diff --git a/plugins/org.eclipse.gmf.xpand.editor/src/org/eclipse/gmf/internal/xpand/expression/codeassist/ReverseScanner.java b/plugins/org.eclipse.gmf.xpand.editor/src/org/eclipse/gmf/internal/xpand/expression/codeassist/ReverseScanner.java
index 707f7fa..0865728 100644
--- a/plugins/org.eclipse.gmf.xpand.editor/src/org/eclipse/gmf/internal/xpand/expression/codeassist/ReverseScanner.java
+++ b/plugins/org.eclipse.gmf.xpand.editor/src/org/eclipse/gmf/internal/xpand/expression/codeassist/ReverseScanner.java
@@ -43,6 +43,10 @@
final String temp = internal.substring(os--, offset);
if (isEndOfString(temp)) {
final String wholeString = getString(internal.substring(0, offset));
+ if (wholeString == null) {
+ // incorrect string
+ return null;
+ }
offset = internal.substring(0, offset).lastIndexOf(wholeString);
return lexToTokenStream(wholeString).getTokenAt(1);
} else if (temp.trim().length() > 0) {
@@ -87,6 +91,7 @@
}
}
}
+ // passed string is either empty or incorrect string
return null;
}