- Vector<AnnotationDescriptor> methodAnnotations = cd.getModifier().getAnnotations();
- for (int i = 0; i < methodAnnotations.size(); i++) {
- AnnotationDescriptor an = methodAnnotations.elementAt(i);
- if (an.getMarker().equals(LATTICE)) {
- MethodLattice<String> locOrder =
- new MethodLattice<String>(SSJavaLattice.TOP, SSJavaLattice.BOTTOM);
- md2lattice.put(md, locOrder);
- parseMethodLatticeDefinition(cd, an.getValue(), locOrder);
+
+ if (hasAnnotation(md)) {
+ Vector<AnnotationDescriptor> methodAnnotations = md.getModifiers().getAnnotations();
+ if (methodAnnotations != null) {
+ for (int i = 0; i < methodAnnotations.size(); i++) {
+ AnnotationDescriptor an = methodAnnotations.elementAt(i);
+ if (an.getMarker().equals(LATTICE)) {
+ // developer explicitly defines method lattice
+ MethodLattice<String> locOrder =
+ new MethodLattice<String>(SSJavaLattice.TOP, SSJavaLattice.BOTTOM);
+ md2lattice.put(md, locOrder);
+ parseMethodLatticeDefinition(cd, an.getValue(), locOrder);
+ }
+ }