|
From: <caw...@us...> - 2007-08-01 15:29:54
|
Revision: 2912
http://rubyeclipse.svn.sourceforge.net/rubyeclipse/?rev=2912&view=rev
Author: cawilliams
Date: 2007-08-01 08:29:47 -0700 (Wed, 01 Aug 2007)
Log Message:
-----------
be extra careful to avoid null pointers or other runtime exceptiosn with new code for user-defined keywords.
Modified Paths:
--------------
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java 2007-08-01 15:27:22 UTC (rev 2911)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java 2007-08-01 15:29:47 UTC (rev 2912)
@@ -231,8 +231,16 @@
private boolean isKeyword(int i) {
if (i >= MIN_KEYWORD && i <= MAX_KEYWORD) return true;
if (i != Tokens.tIDENTIFIER) return false;
- String src = fContents.substring((fOffset - origOffset), (fOffset - origOffset) + fTokenLength);
+ String src;
+ try {
+ src = fContents.substring((fOffset - origOffset), (fOffset - origOffset) + fTokenLength);
+ } catch (RuntimeException e) {
+ RubyPlugin.log(e);
+ return false;
+ }
+ if (src == null || src.trim().length() == 0) return false;
Preferences prefs = RubyPlugin.getDefault().getPluginPreferences();
+ if (prefs == null) return false;
String rawKeywords = prefs.getString(PreferenceConstants.EDITOR_USER_KEYWORDS);
if (rawKeywords == null || rawKeywords.length() == 0) {
return false;
@@ -242,6 +250,7 @@
return false;
}
for (int j = 0; j < keywords.length; j++) {
+ if (keywords[j] == null) continue;
if (keywords[j].equals(src.trim())) return true;
}
return false;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|