Program: 28562
Project: 28562
Buggy source:
@Override protected void prepareHandlers(final Context context){
  super.prepareHandlers(context);
  addHandler(Attributes.TextView.HTML,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setText(Html.fromHtml(attributeValue));
    }
  }
);
  addHandler(Attributes.TextView.Text,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setText(attributeValue);
    }
  }
);
  addHandler(Attributes.TextView.DrawablePadding,new DimensionAttributeProcessor<T>(){
    @Override public void setDimension(    ParserContext parserContext,    float dimension,    T view,    String key,    JsonElement value,    ProteusView proteusView,    JsonObject layout,    int index){
      view.setCompoundDrawablePadding((int)dimension);
    }
  }
);
  addHandler(Attributes.TextView.TextSize,new DimensionAttributeProcessor<T>(){
    @Override public void setDimension(    ParserContext parserContext,    float dimension,    T view,    String key,    JsonElement value,    ProteusView proteusView,    JsonObject layout,    int index){
      view.setTextSize(dimension);
    }
  }
);
  addHandler(Attributes.TextView.Gravity,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setGravity(ParseHelper.parseGravity(attributeValue));
    }
  }
);
  addHandler(Attributes.TextView.TextColor,new ColorResourceProcessor<T>(){
    @Override public void setColor(    T view,    int color){
      view.setTextColor(color);
    }
    @Override public void setColor(    T view,    ColorStateList colors){
      view.setTextColor(colors);
    }
  }
);
  addHandler(Attributes.TextView.TextColorHint,new ColorResourceProcessor<T>(){
    @Override public void setColor(    T view,    int color){
      view.setHintTextColor(color);
    }
    @Override public void setColor(    T view,    ColorStateList colors){
      view.setHintTextColor(colors);
    }
  }
);
  addHandler(Attributes.TextView.TextColorLink,new ColorResourceProcessor<T>(){
    @Override public void setColor(    T view,    int color){
      view.setLinkTextColor(color);
    }
    @Override public void setColor(    T view,    ColorStateList colors){
      view.setLinkTextColor(colors);
    }
  }
);
  addHandler(Attributes.TextView.TextColorHighLight,new ColorResourceProcessor<T>(){
    @Override public void setColor(    T view,    int color){
      view.setHighlightColor(color);
    }
    @Override public void setColor(    T view,    ColorStateList colors){
    }
  }
);
  addHandler(Attributes.TextView.DrawableLeft,new DrawableResourceProcessor<T>(context){
    @Override public void setDrawable(    T view,    Drawable drawable){
      Drawable[] compoundDrawables=view.getCompoundDrawables();
      view.setCompoundDrawablesWithIntrinsicBounds(drawable,compoundDrawables[1],compoundDrawables[2],compoundDrawables[3]);
    }
  }
);
  addHandler(Attributes.TextView.DrawableTop,new DrawableResourceProcessor<T>(context){
    @Override public void setDrawable(    T view,    Drawable drawable){
      Drawable[] compoundDrawables=view.getCompoundDrawables();
      view.setCompoundDrawablesWithIntrinsicBounds(compoundDrawables[0],drawable,compoundDrawables[2],compoundDrawables[3]);
    }
  }
);
  addHandler(Attributes.TextView.DrawableRight,new DrawableResourceProcessor<T>(context){
    @Override public void setDrawable(    T view,    Drawable drawable){
      Drawable[] compoundDrawables=view.getCompoundDrawables();
      view.setCompoundDrawablesWithIntrinsicBounds(drawable,compoundDrawables[1],drawable,compoundDrawables[3]);
    }
  }
);
  addHandler(Attributes.TextView.DrawableBottom,new DrawableResourceProcessor<T>(context){
    @Override public void setDrawable(    T view,    Drawable drawable){
      Drawable[] compoundDrawables=view.getCompoundDrawables();
      view.setCompoundDrawablesWithIntrinsicBounds(drawable,compoundDrawables[1],compoundDrawables[2],drawable);
    }
  }
);
  addHandler(Attributes.TextView.MaxLines,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setMaxLines(ParseHelper.parseInt(attributeValue));
    }
  }
);
  addHandler(Attributes.TextView.Ellipsize,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      Enum ellipsize=ParseHelper.parseEllipsize(attributeValue);
      view.setEllipsize((android.text.TextUtils.TruncateAt)ellipsize);
    }
  }
);
  addHandler(Attributes.TextView.PaintFlags,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      if (attributeValue.equals("String_Node_Str"))       view.setPaintFlags(view.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
    }
  }
);
  addHandler(Attributes.TextView.Prefix,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setText(attributeValue + view.getText());
    }
  }
);
  addHandler(Attributes.TextView.Suffix,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setText(view.getText() + attributeValue);
    }
  }
);
  addHandler(Attributes.TextView.TextStyle,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      int typeface=ParseHelper.parseTypeFace(attributeValue);
      view.setTypeface(Typeface.defaultFromStyle(typeface));
    }
  }
);
  addHandler(Attributes.TextView.SingleLine,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setSingleLine(ParseHelper.parseBoolean(attributeValue));
    }
  }
);
  addHandler(Attributes.TextView.TextAllCaps,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        view.setAllCaps(ParseHelper.parseBoolean(attributeValue));
      }
    }
  }
);
  addHandler(Attributes.TextView.Hint,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setHint(attributeValue);
    }
  }
);
}

Fixed version (ground truth):
@Override protected void prepareHandlers(final Context context){
  super.prepareHandlers(context);
  addHandler(Attributes.TextView.HTML,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setText(Html.fromHtml(attributeValue));
    }
  }
);
  addHandler(Attributes.TextView.Text,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setText(attributeValue);
    }
  }
);
  addHandler(Attributes.TextView.DrawablePadding,new DimensionAttributeProcessor<T>(){
    @Override public void setDimension(    ParserContext parserContext,    float dimension,    T view,    String key,    JsonElement value,    ProteusView proteusView,    JsonObject layout,    int index){
      view.setCompoundDrawablePadding((int)dimension);
    }
  }
);
  addHandler(Attributes.TextView.TextSize,new DimensionAttributeProcessor<T>(){
    @Override public void setDimension(    ParserContext parserContext,    float dimension,    T view,    String key,    JsonElement value,    ProteusView proteusView,    JsonObject layout,    int index){
      view.setTextSize(TypedValue.COMPLEX_UNIT_PX,dimension);
    }
  }
);
  addHandler(Attributes.TextView.Gravity,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setGravity(ParseHelper.parseGravity(attributeValue));
    }
  }
);
  addHandler(Attributes.TextView.TextColor,new ColorResourceProcessor<T>(){
    @Override public void setColor(    T view,    int color){
      view.setTextColor(color);
    }
    @Override public void setColor(    T view,    ColorStateList colors){
      view.setTextColor(colors);
    }
  }
);
  addHandler(Attributes.TextView.TextColorHint,new ColorResourceProcessor<T>(){
    @Override public void setColor(    T view,    int color){
      view.setHintTextColor(color);
    }
    @Override public void setColor(    T view,    ColorStateList colors){
      view.setHintTextColor(colors);
    }
  }
);
  addHandler(Attributes.TextView.TextColorLink,new ColorResourceProcessor<T>(){
    @Override public void setColor(    T view,    int color){
      view.setLinkTextColor(color);
    }
    @Override public void setColor(    T view,    ColorStateList colors){
      view.setLinkTextColor(colors);
    }
  }
);
  addHandler(Attributes.TextView.TextColorHighLight,new ColorResourceProcessor<T>(){
    @Override public void setColor(    T view,    int color){
      view.setHighlightColor(color);
    }
    @Override public void setColor(    T view,    ColorStateList colors){
    }
  }
);
  addHandler(Attributes.TextView.DrawableLeft,new DrawableResourceProcessor<T>(context){
    @Override public void setDrawable(    T view,    Drawable drawable){
      Drawable[] compoundDrawables=view.getCompoundDrawables();
      view.setCompoundDrawablesWithIntrinsicBounds(drawable,compoundDrawables[1],compoundDrawables[2],compoundDrawables[3]);
    }
  }
);
  addHandler(Attributes.TextView.DrawableTop,new DrawableResourceProcessor<T>(context){
    @Override public void setDrawable(    T view,    Drawable drawable){
      Drawable[] compoundDrawables=view.getCompoundDrawables();
      view.setCompoundDrawablesWithIntrinsicBounds(compoundDrawables[0],drawable,compoundDrawables[2],compoundDrawables[3]);
    }
  }
);
  addHandler(Attributes.TextView.DrawableRight,new DrawableResourceProcessor<T>(context){
    @Override public void setDrawable(    T view,    Drawable drawable){
      Drawable[] compoundDrawables=view.getCompoundDrawables();
      view.setCompoundDrawablesWithIntrinsicBounds(drawable,compoundDrawables[1],drawable,compoundDrawables[3]);
    }
  }
);
  addHandler(Attributes.TextView.DrawableBottom,new DrawableResourceProcessor<T>(context){
    @Override public void setDrawable(    T view,    Drawable drawable){
      Drawable[] compoundDrawables=view.getCompoundDrawables();
      view.setCompoundDrawablesWithIntrinsicBounds(drawable,compoundDrawables[1],compoundDrawables[2],drawable);
    }
  }
);
  addHandler(Attributes.TextView.MaxLines,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setMaxLines(ParseHelper.parseInt(attributeValue));
    }
  }
);
  addHandler(Attributes.TextView.Ellipsize,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      Enum ellipsize=ParseHelper.parseEllipsize(attributeValue);
      view.setEllipsize((android.text.TextUtils.TruncateAt)ellipsize);
    }
  }
);
  addHandler(Attributes.TextView.PaintFlags,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      if (attributeValue.equals("String_Node_Str"))       view.setPaintFlags(view.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
    }
  }
);
  addHandler(Attributes.TextView.Prefix,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setText(attributeValue + view.getText());
    }
  }
);
  addHandler(Attributes.TextView.Suffix,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setText(view.getText() + attributeValue);
    }
  }
);
  addHandler(Attributes.TextView.TextStyle,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      int typeface=ParseHelper.parseTypeFace(attributeValue);
      view.setTypeface(Typeface.defaultFromStyle(typeface));
    }
  }
);
  addHandler(Attributes.TextView.SingleLine,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setSingleLine(ParseHelper.parseBoolean(attributeValue));
    }
  }
);
  addHandler(Attributes.TextView.TextAllCaps,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        view.setAllCaps(ParseHelper.parseBoolean(attributeValue));
      }
    }
  }
);
  addHandler(Attributes.TextView.Hint,new StringAttributeProcessor<T>(){
    @Override public void handle(    ParserContext parserContext,    String attributeKey,    String attributeValue,    T view,    ProteusView proteusView,    ProteusView parent,    JsonObject layout,    int index){
      view.setHint(attributeValue);
    }
  }
);
}