]> source.dussan.org Git - aspectj.git/commitdiff
NPE guard
authorwisberg <wisberg>
Mon, 5 May 2003 15:10:46 +0000 (15:10 +0000)
committerwisberg <wisberg>
Mon, 5 May 2003 15:10:46 +0000 (15:10 +0000)
ajde/src/org/aspectj/ajde/ui/swing/BrowserViewManager.java
ajde/src/org/aspectj/ajde/ui/swing/SwingTreeViewNodeRenderer.java
asm/src/org/aspectj/asm/StructureModelManager.java

index 68f7741aa5a641e8a1daf1c6fdd94eea8eb1113d..a1798c125864dd380bff8b2533e4703f847c0669 100644 (file)
@@ -27,6 +27,7 @@ import org.aspectj.asm.InheritanceAssociation;
 import org.aspectj.asm.LinkNode;
 import org.aspectj.asm.ProgramElementNode;
 import org.aspectj.asm.StructureNode;
+import org.aspectj.bridge.ISourceLocation;
 
 /**
  * Responsible for displaying and controlling the configuration and output of a
@@ -74,8 +75,12 @@ public class BrowserViewManager {
             } else {
                 currNode = (ProgramElementNode)structureNode;
             }
-            Ajde.getDefault().getEditorManager().addViewForSourceLine(currNode.getSourceLocation().getSourceFile().getAbsolutePath(),
-                currNode.getSourceLocation().getLine());
+            ISourceLocation sourceLoc = currNode.getSourceLocation();
+            if (null != sourceLoc) {
+                Ajde.getDefault().getEditorManager().addViewForSourceLine(
+                    sourceLoc.getSourceFile().getAbsolutePath(),
+                    sourceLoc.getLine());
+            }
         }
     }
 
index 66f73fb693fa3a7bd619b5481faeeb4506b60b20..a2ba8a6012f62d9c744d96b3378380bb42ec1762 100644 (file)
@@ -27,6 +27,7 @@ import org.aspectj.asm.ProgramElementNode;
 import org.aspectj.asm.RelationNode;
 import org.aspectj.asm.StructureNode;
 import org.aspectj.bridge.IMessage;
+import org.aspectj.bridge.ISourceLocation;
 
 /**
  * @author Mik Kersten
@@ -45,10 +46,12 @@ class SwingTreeViewNodeRenderer extends DefaultTreeCellRenderer {
         StructureNode node = viewNode.getStructureNode();
 
         if (node instanceof LinkNode) {
-            if (((LinkNode)node).getProgramElementNode().getSourceLocation().getSourceFile().getAbsolutePath() == null) {
-                setTextNonSelectionColor(AjdeWidgetStyles.LINK_NODE_NO_SOURCE_COLOR);
-            } else {
+            ISourceLocation sourceLoc = ((LinkNode)node).getProgramElementNode().getSourceLocation();
+            if ((null != sourceLoc) 
+                && (null != sourceLoc.getSourceFile().getAbsolutePath())) {
                 setTextNonSelectionColor(AjdeWidgetStyles.LINK_NODE_COLOR);
+            } else {
+                setTextNonSelectionColor(AjdeWidgetStyles.LINK_NODE_NO_SOURCE_COLOR);
             }
         } else {
                setTextNonSelectionColor(new Color(0, 0, 0));   
index 4a868d9fe82bfdb59f5e4c4b2e1e5bd7e90685dd..1dbf2981dd9deeddd52475f188c716e7cb0973d5 100644 (file)
@@ -16,7 +16,8 @@ package org.aspectj.asm;
 
 import java.util.*;
 import java.io.*;
-import org.aspectj.asm.*;
+
+import org.aspectj.bridge.ISourceLocation;
 
 /**
  * @author Mik Kersten
@@ -72,12 +73,15 @@ public class StructureModelManager {
                 ProgramElementNode peNode = (ProgramElementNode)it.next();
                 List entries = new ArrayList();
                 entries.add(peNode);
-                Integer hash = new Integer(peNode.getSourceLocation().getLine());
-                List existingEntry = (List)annotations.get(hash);
-                if (existingEntry != null) {
-                    entries.addAll(existingEntry);
+                ISourceLocation sourceLoc = peNode.getSourceLocation();
+                if (null != sourceLoc) {
+                    Integer hash = new Integer(sourceLoc.getLine());
+                    List existingEntry = (List)annotations.get(hash);
+                    if (existingEntry != null) {
+                        entries.addAll(existingEntry);
+                    }
+                    annotations.put(hash, entries);
                 }
-                annotations.put(hash, entries);
             }
             return annotations;
         }