Buggy code:
public class ReferenceType extends ResolvedType { private List derivativeTypes = new ArrayList ( ) ; ReferenceType genericType = null ; ReferenceTypeDelegate delegate = 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 ( String signature , String signatureErasure , World world ) { } public ReferenceType ( ResolvedType theGenericType , ResolvedType [ ] theParameters , World aWorld ) { } public ReferenceType ( ResolvedType theGenericType , World aWorld ) { } private void addDependentType ( ReferenceType dependent ) { } public String getSignatureForAttribute ( ) { } public ReferenceType ( UnresolvedType genericType , World world ) { } public final boolean isClass ( ) { } public final boolean isGenericType ( ) { } public String getGenericSignature ( ) { } 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 isAnonymous ( ) { } public boolean isNested ( ) { } public ResolvedType getOuterClass ( ) { } public String getRetentionPolicy ( ) { } public boolean isAnnotationWithRuntimeRetention ( ) { } public boolean canAnnotationTargetType ( ) { } public AnnotationTargetKind [ ] getAnnotationTargetKinds ( ) { } 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 ( ) { } private UnresolvedType findTypeParameterInList ( String name , TypeVariable [ ] tvarsOnThisGenericType , UnresolvedType [ ] paramTypes ) { } private UnresolvedType [ ] determineThoseTypesToUse ( ResolvedType parameterizedInterface , UnresolvedType [ ] paramTypes ) { } private int getRank ( String tvname ) { } public ResolvedMember [ ] getDeclaredMethods ( ) { } public ResolvedMember [ ] getDeclaredPointcuts ( ) { } private UnresolvedType [ ] getTypesForMemberParameterization ( ) { } public UnresolvedType getRawType ( ) { } public TypeVariable [ ] getTypeVariables ( ) { } public PerClause getPerClause ( ) { } protected Collection getDeclares ( ) { } 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 setStartPos ( int startPos ) { } public boolean doesNotExposeShadowMungers ( ) { } public String getDeclaredGenericSignature ( ) { } public void setGenericType ( ReferenceType rt ) { } public void demoteToSimpleType ( ) { } public ResolvedType getGenericType ( ) { } private static String makeParameterizedSignature ( ResolvedType aGenericType , ResolvedType [ ] someParameters ) { } private static String makeDeclaredSignature ( ResolvedType aGenericType , UnresolvedType [ ] someParameters ) { StringBuffer ret = new StringBuffer ( ) ; String rawSig = aGenericType . getErasureSignature ( ) ; ret . append ( rawSig . substring ( 0 , ( ( rawSig . length ( ) ) - 1 ) ) ) ; ret . append ( "<" ) ; for ( int i = 0 ; i < ( someParameters . length ) ; i ++ ) { <START_BUG> ret . append ( someParameters [ i ] . getSignature ( ) ) ; <END_BUG> } ret . append ( ">;" ) ; return ret . toString ( ) ; } }

Fix:
ret . append ( ( ( ReferenceType ) ( someParameters [ i ] ) ) . getSignatureForAttribute ( ) ) ;