Buggy code:
public class ReferenceType extends ResolvedType { ReferenceType genericType = null ; ReferenceTypeDelegate delegate = null ; ISourceContext sourceContext = null ; int startPos = 0 ; int endPos = 0 ; public static ReferenceType fromTypeX ( UnresolvedType tx , World world ) { } ResolvedMember [ ] parameterizedMethods = null ; ResolvedMember [ ] parameterizedFields = null ; ResolvedMember [ ] parameterizedPointcuts = null ; ResolvedType [ ] parameterizedInterfaces = null ; Collection parameterizedDeclares = null ; public ReferenceType ( String signature , World world ) { } public ReferenceType ( ResolvedType theGenericType , ResolvedType [ ] theParameters , World aWorld ) { } public ReferenceType ( ResolvedType theGenericType , World aWorld ) { } public String getSignatureForAttribute ( ) { } public ReferenceType ( UnresolvedType genericType , World world ) { } public final boolean isClass ( ) { } public final boolean isGenericType ( ) { } public AnnotationX [ ] getAnnotations ( ) { } public void addAnnotation ( AnnotationX annotationX ) { } public boolean hasAnnotation ( UnresolvedType ofType ) { } public ResolvedType [ ] getAnnotationTypes ( ) { } public boolean isAspect ( ) { } public boolean isAnnotationStyleAspect ( ) { } public boolean isEnum ( ) { } public boolean isAnnotation ( ) { } public boolean isAnnotationWithRuntimeRetention ( ) { } public final boolean isCoerceableFrom ( ResolvedType o ) { } private final boolean isCoerceableFromParameterizedType ( ResolvedType other ) { } public final boolean isAssignableFrom ( ResolvedType other ) { } public final boolean isAssignableFrom ( ResolvedType other , boolean allowMissing ) { } public ISourceContext getSourceContext ( ) { } public ISourceLocation getSourceLocation ( ) { } public boolean isExposedToWeaver ( ) { } public WeaverStateInfo getWeaverState ( ) { } public ResolvedMember [ ] getDeclaredFields ( ) { } public ResolvedType [ ] getDeclaredInterfaces ( ) { } public ResolvedMember [ ] getDeclaredMethods ( ) { } public ResolvedMember [ ] getDeclaredPointcuts ( ) { } private UnresolvedType [ ] getTypesForMemberParameterization ( ) { UnresolvedType [ ] parameters = null ; if ( isParameterizedType ( ) ) { parameters = getTypeParameters ( ) ; } else if ( isRawType ( ) ) { TypeVariable [ ] tvs = getGenericType ( ) . getTypeVariables ( ) ; parameters = new UnresolvedType [ tvs . length ] ; for ( int i = 0 ; i < ( tvs . length ) ; i ++ ) { <START_BUG> parameters [ i ] = tvs [ i ] . getUpperBound ( ) ; <END_BUG> } } return parameters ; } public UnresolvedType getRawType ( ) { } public TypeVariable [ ] getTypeVariables ( ) { } public PerClause getPerClause ( ) { } protected Collection getDeclares ( ) { } private boolean ajMembersNeedParameterization ( ) { } private Map getAjMemberParameterizationMap ( ) { } protected Collection getTypeMungers ( ) { } protected Collection getPrivilegedAccesses ( ) { } public int getModifiers ( ) { } public ResolvedType getSuperclass ( ) { } public ReferenceTypeDelegate getDelegate ( ) { } public void setDelegate ( ReferenceTypeDelegate delegate ) { } private void clearParameterizationCaches ( ) { } public int getEndPos ( ) { } public int getStartPos ( ) { } public void setEndPos ( int endPos ) { } public void setSourceContext ( ISourceContext sourceContext ) { } public void setStartPos ( int startPos ) { } public boolean doesNotExposeShadowMungers ( ) { } public String getDeclaredGenericSignature ( ) { } public void setGenericType ( ReferenceType rt ) { } public ResolvedType getGenericType ( ) { } private static String makeParameterizedSignature ( ResolvedType aGenericType , ResolvedType [ ] someParameters ) { } private static String makeDeclaredSignature ( ResolvedType aGenericType , UnresolvedType [ ] someParameters ) { } }

Fix:
parameters [ i ] = tvs [ i ] . getFirstBound ( ) ;