From f5d31bac784ae2c0cccb6a990d1fc54e86df2dd1 Mon Sep 17 00:00:00 2001 From: mkersten Date: Wed, 30 Jul 2003 09:54:07 +0000 Subject: [PATCH] fixed 39974: Some strange error when compiling the observer example with JBuilder7 integrated AJDE --- .../ajdt/internal/core/builder/AsmBuilder.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java index 9b363b88c..eecf41d0e 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmBuilder.java @@ -180,7 +180,6 @@ public class AsmBuilder extends AbstractSyntaxTreeVisitorAdapter { public boolean visit(TypeDeclaration typeDeclaration, CompilationUnitScope scope) { String name = new String(typeDeclaration.name); - //System.err.println("type with name: " + name); ProgramElementNode.Kind kind = ProgramElementNode.Kind.CLASS; if (typeDeclaration instanceof AspectDeclaration) kind = ProgramElementNode.Kind.ASPECT; else if (typeDeclaration.isInterface()) kind = ProgramElementNode.Kind.INTERFACE; @@ -281,6 +280,7 @@ public class AsmBuilder extends AbstractSyntaxTreeVisitorAdapter { } // !!! improve name and type generation + // TODO: improve handling of malformed methodDeclaration.binding public boolean visit(MethodDeclaration methodDeclaration, ClassScope scope) { ProgramElementNode.Kind kind = ProgramElementNode.Kind.METHOD; String label = new String(methodDeclaration.selector); @@ -328,9 +328,18 @@ public class AsmBuilder extends AbstractSyntaxTreeVisitorAdapter { } if (methodDeclaration.binding != null) { - Member member = EclipseFactory.makeResolvedMember(methodDeclaration.binding); - peNode.setBytecodeName(member.getName()); - peNode.setBytecodeSignature(member.getSignature()); + String memberName = ""; + String memberBytecodeSignature = ""; + try { + Member member = EclipseFactory.makeResolvedMember(methodDeclaration.binding); + memberName = member.getName(); + memberBytecodeSignature = member.getSignature(); + } catch (NullPointerException npe) { + memberName = ""; + } + + peNode.setBytecodeName(memberName); + peNode.setBytecodeSignature(memberBytecodeSignature); } ((StructureNode)stack.peek()).addChild(peNode); stack.push(peNode); -- 2.39.5