Buggy code:
public Expression convert ( ClassLiteralAccess expression ) { } public CompilationUnit convert ( CompilationUnitDeclaration unit , char [ ] source ) { } public Assignment convert ( CompoundAssignment expression ) { } public ConditionalExpression convert ( org . eclipse . jdt . internal . compiler . ast . ConditionalExpression expression ) { } public ContinueStatement convert ( org . eclipse . jdt . internal . compiler . ast . ContinueStatement statement ) { } public DoStatement convert ( org . eclipse . jdt . internal . compiler . ast . DoStatement statement ) { } public NumberLiteral convert ( DoubleLiteral expression ) { } public EmptyStatement convert ( org . eclipse . jdt . internal . compiler . ast . EmptyStatement statement ) { } public EnumConstantDeclaration convert ( FieldDeclaration enumConstant ) { } public Expression convert ( EqualExpression expression ) { } public Statement convert ( ExplicitConstructorCall statement ) { } public Expression convert ( Expression expression ) { } public StringLiteral convert ( ExtendedStringLiteral expression ) { } public BooleanLiteral convert ( FalseLiteral expression ) { } public Expression convert ( FieldReference reference ) { } public NumberLiteral convert ( FloatLiteral expression ) { } public Statement convert ( ForeachStatement statement ) { } public ForStatement convert ( org . eclipse . jdt . internal . compiler . ast . ForStatement statement ) { } public IfStatement convert ( org . eclipse . jdt . internal . compiler . ast . IfStatement statement ) { } public InstanceofExpression convert ( InstanceOfExpression expression ) { } public NumberLiteral convert ( IntLiteral expression ) { } public NumberLiteral convert ( IntLiteralMinValue expression ) { } public void convert ( Javadoc javadoc , BodyDeclaration bodyDeclaration ) { } public LabeledStatement convert ( org . eclipse . jdt . internal . compiler . ast . LabeledStatement statement ) { } public NumberLiteral convert ( LongLiteral expression ) { } public NumberLiteral convert ( LongLiteralMinValue expression ) { } public Expression convert ( MessageSend expression ) { } public MarkerAnnotation convert ( org . eclipse . jdt . internal . compiler . ast . MarkerAnnotation annotation ) { } public MemberValuePair convert ( org . eclipse . jdt . internal . compiler . ast . MemberValuePair memberValuePair ) { } public Name convert ( NameReference reference ) { } public InfixExpression convert ( StringLiteralConcatenation expression ) { } public NormalAnnotation convert ( org . eclipse . jdt . internal . compiler . ast . NormalAnnotation annotation ) { } public NullLiteral convert ( org . eclipse . jdt . internal . compiler . ast . NullLiteral expression ) { } public Expression convert ( OR_OR_Expression expression ) { } public PostfixExpression convert ( org . eclipse . jdt . internal . compiler . ast . PostfixExpression expression ) { } public PrefixExpression convert ( org . eclipse . jdt . internal . compiler . ast . PrefixExpression expression ) { } public Expression convert ( QualifiedAllocationExpression allocation ) { ClassInstanceCreation classInstanceCreation = this . ast . newClassInstanceCreation ( ) ; if ( ( allocation . enclosingInstance ) != null ) { classInstanceCreation . setExpression ( convert ( allocation . enclosingInstance ) ) ; } switch ( this . ast . apiLevel ) { case AST . JLS2 : classInstanceCreation . setName ( convert ( allocation . type ) ) ; break ; case AST . JLS3 : classInstanceCreation . setType ( convertType ( allocation . type ) ) ; } Expression [ ] arguments = allocation . arguments ; if ( arguments != null ) { int length = arguments . length ; for ( int i = 0 ; i < length ; i ++ ) { Expression argument = convert ( arguments [ i ] ) ; if ( this . resolveBindings ) { recordNodes ( argument , arguments [ i ] ) ; } classInstanceCreation . arguments ( ) . add ( argument ) ; } } if ( ( allocation . typeArguments ) != null ) { switch ( this . ast . apiLevel ) { case AST . JLS2 : classInstanceCreation . setFlags ( ( ( classInstanceCreation . getFlags ( ) ) | ( ASTNode . MALFORMED ) ) ) ; break ; case AST . JLS3 : for ( int i = 0 , max = allocation . typeArguments . length ; i < max ; i ++ ) { <START_BUG> classInstanceCreation . typeArguments ( ) . add ( convert ( allocation . typeArguments [ i ] ) ) ; <END_BUG> } } } if ( ( allocation . anonymousType ) != null ) { int declarationSourceStart = allocation . sourceStart ; classInstanceCreation . setSourceRange ( declarationSourceStart , ( ( ( allocation . anonymousType . bodyEnd ) - declarationSourceStart ) + 1 ) ) ; AnonymousClassDeclaration anonymousClassDeclaration = this . ast . newAnonymousClassDeclaration ( ) ; int start = retrieveStartBlockPosition ( allocation . anonymousType . sourceEnd , allocation . anonymousType . bodyEnd ) ; anonymousClassDeclaration . setSourceRange ( start , ( ( ( allocation . anonymousType . bodyEnd ) - start ) + 1 ) ) ; classInstanceCreation . setAnonymousClassDeclaration ( anonymousClassDeclaration ) ; buildBodyDeclarations ( allocation . anonymousType , anonymousClassDeclaration ) ; if ( this . resolveBindings ) { recordNodes ( classInstanceCreation , allocation . anonymousType ) ; recordNodes ( anonymousClassDeclaration , allocation . anonymousType ) ; anonymousClassDeclaration . resolveBinding ( ) ; } return classInstanceCreation ; } else { final int start = allocation . sourceStart ; classInstanceCreation . setSourceRange ( start , ( ( ( allocation . sourceEnd ) - start ) + 1 ) ) ; if ( this . resolveBindings ) { recordNodes ( classInstanceCreation , allocation ) ; } removeTrailingCommentFromExpressionEndingWithAParen ( classInstanceCreation ) ; return classInstanceCreation ; } } public Name convert ( QualifiedNameReference nameReference ) { } public Name convert ( QualifiedSuperReference reference ) { } public ThisExpression convert ( QualifiedThisReference reference ) { } public Expression convert ( Reference reference ) { }

Fix:
classInstanceCreation . typeArguments ( ) . add ( convertType ( allocation . typeArguments [ i ] ) ) ;