Program: 12114
Project: 12114
Buggy source:
private Type generateTypeFromTypeBinding(ITypeBinding typeBinding,AST ast,ASTRewrite rewriter){
  Type type=null;
  if (typeBinding.isClass() || typeBinding.isInterface()) {
    type=ast.newSimpleType(ast.newSimpleName(typeBinding.getName()));
  }
 else   if (typeBinding.isPrimitive()) {
    String primitiveType=typeBinding.getName();
    if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.INT);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.DOUBLE);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.BYTE);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.SHORT);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.CHAR);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.LONG);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.FLOAT);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.BOOLEAN);
  }
 else   if (typeBinding.isArray()) {
    ITypeBinding elementTypeBinding=typeBinding.getElementType();
    Type elementType=ast.newSimpleType(ast.newSimpleName(elementTypeBinding.getName()));
    type=ast.newArrayType(elementType,typeBinding.getDimensions());
  }
 else   if (typeBinding.isParameterizedType()) {
    type=createParameterizedType(ast,typeBinding,rewriter);
  }
  return type;
}

Fixed version (ground truth):
private Type generateTypeFromTypeBinding(ITypeBinding typeBinding,AST ast,ASTRewrite rewriter){
  Type type=null;
  if (typeBinding.isClass() || typeBinding.isInterface()) {
    type=ast.newSimpleType(ast.newSimpleName(typeBinding.getName()));
  }
 else   if (typeBinding.isPrimitive()) {
    String primitiveType=typeBinding.getName();
    if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.INT);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.DOUBLE);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.BYTE);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.SHORT);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.CHAR);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.LONG);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.FLOAT);
 else     if (primitiveType.equals("String_Node_Str"))     type=ast.newPrimitiveType(PrimitiveType.BOOLEAN);
  }
 else   if (typeBinding.isArray()) {
    ITypeBinding elementTypeBinding=typeBinding.getElementType();
    Type elementType=generateTypeFromTypeBinding(elementTypeBinding,ast,rewriter);
    type=ast.newArrayType(elementType,typeBinding.getDimensions());
  }
 else   if (typeBinding.isParameterizedType()) {
    type=createParameterizedType(ast,typeBinding,rewriter);
  }
  return type;
}