|
From: <caw...@us...> - 2007-06-29 17:19:39
|
Revision: 2704
http://svn.sourceforge.net/rubyeclipse/?rev=2704&view=rev
Author: cawilliams
Date: 2007-06-29 10:19:36 -0700 (Fri, 29 Jun 2007)
Log Message:
-----------
wrap possible runtime exceptions, log them and keep on trucking
Modified Paths:
--------------
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OccurrencesFinder.java
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OccurrencesFinder.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OccurrencesFinder.java 2007-06-29 17:00:10 UTC (rev 2703)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OccurrencesFinder.java 2007-06-29 17:19:36 UTC (rev 2704)
@@ -47,6 +47,7 @@
import org.rubypeople.rdt.internal.ti.util.INodeAcceptor;
import org.rubypeople.rdt.internal.ti.util.OffsetNodeLocator;
import org.rubypeople.rdt.internal.ti.util.ScopedNodeLocator;
+import org.rubypeople.rdt.internal.ui.RubyPlugin;
/**
* Implements "Mark Occurences" feature
@@ -85,8 +86,15 @@
for (Iterator iter= fUsages.iterator(); iter.hasNext();) {
Node node= (Node) iter.next();
- ISourcePosition position = getPositionOfName(node);
+ ISourcePosition position;
+ try {
+ position = getPositionOfName(node);
+ } catch (RuntimeException e) {
+ RubyPlugin.log(e);
+ continue;
+ }
int startPosition= position.getStartOffset();
+ if (startPosition < 0) continue;
int length= position.getEndOffset() - position.getStartOffset();
try {
boolean isWriteAccess= fWriteUsages.contains(node);
@@ -207,9 +215,13 @@
// Convert ISourcePosition to IPosition
List<Position> positions = new LinkedList<Position>();
for (Node node : fUsages) {
- ISourcePosition occurrence = getPositionOfName(node);
- Position position = new Position(occurrence.getStartOffset(), occurrence.getEndOffset() - occurrence.getStartOffset());
- positions.add(position);
+ try {
+ ISourcePosition occurrence = getPositionOfName(node);
+ Position position = new Position(occurrence.getStartOffset(), occurrence.getEndOffset() - occurrence.getStartOffset());
+ positions.add(position);
+ } catch (RuntimeException re) {
+ RubyPlugin.log(re);
+ }
}
// Uniqueify positions
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|