Browse Source

Fix 525972 - java.lang.ArrayIndexOutOfBoundsException: 2 (at org.aspectj.weaver.ResolvedType.getMemberParameterizationMap(ResolvedType.java:970))

tags/V1_9_0_RC3
Andy Clement 6 years ago
parent
commit
c3142b62c0
1 changed files with 28 additions and 2 deletions
  1. 28
    2
      org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java

+ 28
- 2
org.aspectj.matcher/src/org/aspectj/weaver/ResolvedType.java View File

@@ -966,12 +966,38 @@ public abstract class ResolvedType extends UnresolvedType implements AnnotatedEl
}
TypeVariable[] tvs = getGenericType().getTypeVariables();
Map<String, UnresolvedType> parameterizationMap = new HashMap<String, UnresolvedType>();
for (int i = 0; i < tvs.length; i++) {
parameterizationMap.put(tvs[i].getName(), typeParameters[i]);
if (tvs.length != typeParameters.length) {
world.getMessageHandler()
.handleMessage(
new Message("Mismatch when building parameterization map. For type '" + this.signature +
"' expecting "+tvs.length+":["+toString(tvs)+"] type parameters but found "+typeParameters.length+
":["+toString(typeParameters)+"]", "",
IMessage.ERROR, getSourceLocation(), null,
new ISourceLocation[] { getSourceLocation() }));
} else {
for (int i = 0; i < tvs.length; i++) {
parameterizationMap.put(tvs[i].getName(), typeParameters[i]);
}
}
return parameterizationMap;
}

private String toString(UnresolvedType[] typeParameters) {
StringBuilder s = new StringBuilder();
for (UnresolvedType tv: typeParameters) {
s.append(tv.getSignature()).append(" ");
}
return s.toString().trim();
}

private String toString(TypeVariable[] tvs) {
StringBuilder s = new StringBuilder();
for (TypeVariable tv: tvs) {
s.append(tv.getName()).append(" ");
}
return s.toString().trim();
}

public List<ShadowMunger> getDeclaredAdvice() {
List<ShadowMunger> l = new ArrayList<ShadowMunger>();
ResolvedMember[] methods = getDeclaredMethods();

Loading…
Cancel
Save