Program: 54099
Project: 54099
Buggy source:
private void init(Context context,AttributeSet attrs){
  iconSize=getPixel(32);
  iconOuterWidth=getPixel(48);
  iconOuterHeight=getPixel(32);
  bottomSpacing=getResources().getDimensionPixelSize(R.dimen.inner_components_spacing);
  bottomEllipsisSize=getResources().getDimensionPixelSize(R.dimen.bottom_ellipsis_height);
  int defaultBaseColor;
  TypedValue baseColorTypedValue=new TypedValue();
  context.getTheme().resolveAttribute(android.R.attr.windowBackground,baseColorTypedValue,true);
  defaultBaseColor=Colors.getBaseColor(baseColorTypedValue.data);
  TypedArray typedArray=context.obtainStyledAttributes(attrs,R.styleable.MaterialEditText);
  baseColor=typedArray.getColor(R.styleable.MaterialEditText_baseColor,defaultBaseColor);
  ColorStateList colorStateList=new ColorStateList(new int[][]{new int[]{android.R.attr.state_enabled},EMPTY_STATE_SET},new int[]{baseColor & 0x00ffffff | 0xdf000000,baseColor & 0x00ffffff | 0x44000000});
  setTextColor(colorStateList);
  int defaultPrimaryColor;
  TypedValue primaryColorTypedValue=new TypedValue();
  try {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      context.getTheme().resolveAttribute(android.R.attr.colorPrimary,primaryColorTypedValue,true);
      defaultPrimaryColor=primaryColorTypedValue.data;
    }
 else {
      throw new RuntimeException("String_Node_Str");
    }
  }
 catch (  Exception e) {
    try {
      int colorPrimaryId=getResources().getIdentifier("String_Node_Str","String_Node_Str",getContext().getPackageName());
      if (colorPrimaryId != 0) {
        context.getTheme().resolveAttribute(colorPrimaryId,primaryColorTypedValue,true);
        defaultPrimaryColor=primaryColorTypedValue.data;
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
 catch (    Exception e1) {
      defaultPrimaryColor=baseColor;
    }
  }
  primaryColor=typedArray.getColor(R.styleable.MaterialEditText_primaryColor,defaultPrimaryColor);
  setFloatingLabelInternal(typedArray.getInt(R.styleable.MaterialEditText_floatingLabel,0));
  errorColor=typedArray.getColor(R.styleable.MaterialEditText_errorColor,Color.parseColor("String_Node_Str"));
  minCharacters=typedArray.getInt(R.styleable.MaterialEditText_minCharacters,0);
  maxCharacters=typedArray.getInt(R.styleable.MaterialEditText_maxCharacters,0);
  singleLineEllipsis=typedArray.getBoolean(R.styleable.MaterialEditText_singleLineEllipsis,false);
  helperText=typedArray.getString(R.styleable.MaterialEditText_helperText);
  helperTextColor=typedArray.getColor(R.styleable.MaterialEditText_helperTextColor,-1);
  minBottomTextLines=typedArray.getInt(R.styleable.MaterialEditText_minBottomTextLines,0);
  String fontPath=typedArray.getString(R.styleable.MaterialEditText_accentTypeface);
  if (fontPath != null && !isInEditMode()) {
    accentTypeface=getCustomTypeface(fontPath);
    textPaint.setTypeface(accentTypeface);
  }
  floatingLabelText=typedArray.getString(R.styleable.MaterialEditText_floatingLabelText);
  if (floatingLabelText == null) {
    floatingLabelText=getHint();
  }
  floatingLabelSpacing=typedArray.getDimensionPixelSize(R.styleable.MaterialEditText_floatingLabelSpacing,bottomSpacing);
  floatingLabelTextSize=typedArray.getDimensionPixelSize(R.styleable.MaterialEditText_floatingLabelTextSize,getResources().getDimensionPixelSize(R.dimen.floating_label_text_size));
  bottomTextSize=typedArray.getDimensionPixelSize(R.styleable.MaterialEditText_bottomTextSize,getResources().getDimensionPixelSize(R.dimen.bottom_text_size));
  hideUnderline=typedArray.getBoolean(R.styleable.MaterialEditText_hideUnderline,false);
  autoValidate=typedArray.getBoolean(R.styleable.MaterialEditText_autoValidate,false);
  iconLeftBitmaps=generateIconBitmaps(typedArray.getResourceId(R.styleable.MaterialEditText_iconLeft,-1));
  iconRightBitmaps=generateIconBitmaps(typedArray.getResourceId(R.styleable.MaterialEditText_iconRight,-1));
  iconPadding=typedArray.getDimensionPixelSize(R.styleable.MaterialEditText_iconPadding,getPixel(8));
  int[] paddings=new int[]{android.R.attr.padding,android.R.attr.paddingLeft,android.R.attr.paddingTop,android.R.attr.paddingRight,android.R.attr.paddingBottom};
  TypedArray paddingsTypedArray=context.obtainStyledAttributes(attrs,paddings);
  int padding=paddingsTypedArray.getDimensionPixelSize(0,0);
  innerPaddingLeft=paddingsTypedArray.getDimensionPixelSize(1,padding);
  innerPaddingTop=paddingsTypedArray.getDimensionPixelSize(2,padding);
  innerPaddingRight=paddingsTypedArray.getDimensionPixelSize(3,padding);
  innerPaddingBottom=paddingsTypedArray.getDimensionPixelSize(4,padding);
  typedArray.recycle();
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    setBackground(null);
  }
 else {
    setBackgroundDrawable(null);
  }
  if (singleLineEllipsis) {
    TransformationMethod transformationMethod=getTransformationMethod();
    setSingleLine();
    setTransformationMethod(transformationMethod);
  }
  initMinBottomLines();
  initPadding();
  initText();
  initFloatingLabel();
  initTextWatcher();
  checkCharactersCount();
}

Fixed version (ground truth):
private void init(Context context,AttributeSet attrs){
  iconSize=getPixel(32);
  iconOuterWidth=getPixel(48);
  iconOuterHeight=getPixel(32);
  bottomSpacing=getResources().getDimensionPixelSize(R.dimen.inner_components_spacing);
  bottomEllipsisSize=getResources().getDimensionPixelSize(R.dimen.bottom_ellipsis_height);
  int defaultBaseColor;
  TypedValue baseColorTypedValue=new TypedValue();
  context.getTheme().resolveAttribute(android.R.attr.windowBackground,baseColorTypedValue,true);
  defaultBaseColor=Colors.getBaseColor(baseColorTypedValue.data);
  TypedArray typedArray=context.obtainStyledAttributes(attrs,R.styleable.MaterialEditText);
  baseColor=typedArray.getColor(R.styleable.MaterialEditText_baseColor,defaultBaseColor);
  setBaseColor(baseColor);
  int defaultPrimaryColor;
  TypedValue primaryColorTypedValue=new TypedValue();
  try {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      context.getTheme().resolveAttribute(android.R.attr.colorPrimary,primaryColorTypedValue,true);
      defaultPrimaryColor=primaryColorTypedValue.data;
    }
 else {
      throw new RuntimeException("String_Node_Str");
    }
  }
 catch (  Exception e) {
    try {
      int colorPrimaryId=getResources().getIdentifier("String_Node_Str","String_Node_Str",getContext().getPackageName());
      if (colorPrimaryId != 0) {
        context.getTheme().resolveAttribute(colorPrimaryId,primaryColorTypedValue,true);
        defaultPrimaryColor=primaryColorTypedValue.data;
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
 catch (    Exception e1) {
      defaultPrimaryColor=baseColor;
    }
  }
  primaryColor=typedArray.getColor(R.styleable.MaterialEditText_primaryColor,defaultPrimaryColor);
  setFloatingLabelInternal(typedArray.getInt(R.styleable.MaterialEditText_floatingLabel,0));
  errorColor=typedArray.getColor(R.styleable.MaterialEditText_errorColor,Color.parseColor("String_Node_Str"));
  minCharacters=typedArray.getInt(R.styleable.MaterialEditText_minCharacters,0);
  maxCharacters=typedArray.getInt(R.styleable.MaterialEditText_maxCharacters,0);
  singleLineEllipsis=typedArray.getBoolean(R.styleable.MaterialEditText_singleLineEllipsis,false);
  helperText=typedArray.getString(R.styleable.MaterialEditText_helperText);
  helperTextColor=typedArray.getColor(R.styleable.MaterialEditText_helperTextColor,-1);
  minBottomTextLines=typedArray.getInt(R.styleable.MaterialEditText_minBottomTextLines,0);
  String fontPath=typedArray.getString(R.styleable.MaterialEditText_accentTypeface);
  if (fontPath != null && !isInEditMode()) {
    accentTypeface=getCustomTypeface(fontPath);
    textPaint.setTypeface(accentTypeface);
  }
  floatingLabelText=typedArray.getString(R.styleable.MaterialEditText_floatingLabelText);
  if (floatingLabelText == null) {
    floatingLabelText=getHint();
  }
  floatingLabelSpacing=typedArray.getDimensionPixelSize(R.styleable.MaterialEditText_floatingLabelSpacing,bottomSpacing);
  floatingLabelTextSize=typedArray.getDimensionPixelSize(R.styleable.MaterialEditText_floatingLabelTextSize,getResources().getDimensionPixelSize(R.dimen.floating_label_text_size));
  bottomTextSize=typedArray.getDimensionPixelSize(R.styleable.MaterialEditText_bottomTextSize,getResources().getDimensionPixelSize(R.dimen.bottom_text_size));
  hideUnderline=typedArray.getBoolean(R.styleable.MaterialEditText_hideUnderline,false);
  autoValidate=typedArray.getBoolean(R.styleable.MaterialEditText_autoValidate,false);
  iconLeftBitmaps=generateIconBitmaps(typedArray.getResourceId(R.styleable.MaterialEditText_iconLeft,-1));
  iconRightBitmaps=generateIconBitmaps(typedArray.getResourceId(R.styleable.MaterialEditText_iconRight,-1));
  iconPadding=typedArray.getDimensionPixelSize(R.styleable.MaterialEditText_iconPadding,getPixel(8));
  int[] paddings=new int[]{android.R.attr.padding,android.R.attr.paddingLeft,android.R.attr.paddingTop,android.R.attr.paddingRight,android.R.attr.paddingBottom};
  TypedArray paddingsTypedArray=context.obtainStyledAttributes(attrs,paddings);
  int padding=paddingsTypedArray.getDimensionPixelSize(0,0);
  innerPaddingLeft=paddingsTypedArray.getDimensionPixelSize(1,padding);
  innerPaddingTop=paddingsTypedArray.getDimensionPixelSize(2,padding);
  innerPaddingRight=paddingsTypedArray.getDimensionPixelSize(3,padding);
  innerPaddingBottom=paddingsTypedArray.getDimensionPixelSize(4,padding);
  typedArray.recycle();
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    setBackground(null);
  }
 else {
    setBackgroundDrawable(null);
  }
  if (singleLineEllipsis) {
    TransformationMethod transformationMethod=getTransformationMethod();
    setSingleLine();
    setTransformationMethod(transformationMethod);
  }
  initMinBottomLines();
  initPadding();
  initText();
  initFloatingLabel();
  initTextWatcher();
  checkCharactersCount();
}