Program: 96200
Project: 96200
Buggy source:
@Override public void bindView(View view,Context context,Cursor cursor){
  Weapon weapon=mWeaponCursor.getWeapon();
  TextView nametv=(TextView)view.findViewById(R.id.name);
  TextView attacktv=(TextView)view.findViewById(R.id.attack);
  TextView elementtv=(TextView)view.findViewById(R.id.element);
  TextView awakentv=(TextView)view.findViewById(R.id.awaken);
  TextView slottv=(TextView)view.findViewById(R.id.slot);
  TextView affinitytv=(TextView)view.findViewById(R.id.affinity);
  TextView defensetv=(TextView)view.findViewById(R.id.defense);
  TextView specialtv=(TextView)view.findViewById(R.id.special);
  elementtv.setCompoundDrawables(null,null,null,null);
  specialtv.setCompoundDrawables(null,null,null,null);
  specialtv.setText(null);
  String name="String_Node_Str";
  int wFinal=weapon.getWFinal();
  if (wFinal != 0) {
    name="String_Node_Str";
  }
  name=name + weapon.getName();
  String attack="String_Node_Str" + weapon.getAttack();
  String element=weapon.getElementalAttack();
  String awakenedElement=weapon.getAwakenedElementalAttack();
  String dualElement=null;
  String elementText="String_Node_Str";
  String awakenText="String_Node_Str";
  Drawable dEle=null;
  Drawable dDualEle=null;
  if (awakenedElement != null) {
    element=awakenedElement;
    awakenText="String_Node_Str";
  }
  if (element != null) {
    String[] elementData=getElementData(element);
    elementText=elementData[0];
    dEle=getDrawable(context,elementData[1]);
    if (element.contains("String_Node_Str")) {
      String[] twoElements=elementText.split("String_Node_Str");
      elementText=twoElements[0];
      dualElement=twoElements[1];
      String[] dualElementData=getElementData(dualElement);
      specialtv.setText(dualElementData[0]);
      dDualEle=getDrawable(context,dualElementData[1]);
      dDualEle=scaleDrawable(dDualEle,35,35);
      specialtv.setCompoundDrawables(dDualEle,null,null,null);
      android.view.Display display=((android.view.WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
      specialtv.setPadding((int)(display.getWidth() * 0.16),0,0,0);
    }
    dEle=scaleDrawable(dEle,35,35);
    elementtv.setCompoundDrawables(dEle,null,null,null);
    if (awakenedElement != null) {
      elementText=elementText + "String_Node_Str";
    }
  }
  String slot="String_Node_Str";
switch (weapon.getNumSlots()) {
case 0:
    slot="String_Node_Str";
  break;
case 1:
slot="String_Node_Str";
break;
case 2:
slot="String_Node_Str";
break;
case 3:
slot="String_Node_Str";
break;
default :
slot="String_Node_Str";
break;
}
String affinity="String_Node_Str";
if (weapon.getAffinity() != 0) {
affinity="String_Node_Str" + weapon.getAffinity() + "String_Node_Str";
}
String defense="String_Node_Str";
if (weapon.getDefense() != 0) {
defense="String_Node_Str" + weapon.getDefense();
}
nametv.setText(name);
nametv.setTypeface(null,Typeface.BOLD);
attacktv.setText(attack);
elementtv.setText(elementText);
awakentv.setText(awakenText);
slottv.setText(slot);
affinitytv.setText(affinity);
defensetv.setText(defense);
String type=weapon.getWtype();
if (type.equals("String_Node_Str")) {
String special=weapon.getHornNotes();
specialtv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,0.3f));
ImageView note1v=(ImageView)view.findViewById(R.id.note1);
ImageView note2v=(ImageView)view.findViewById(R.id.note2);
ImageView note3v=(ImageView)view.findViewById(R.id.note3);
TextView fillerv=(TextView)view.findViewById(R.id.filler);
note1v.setImageDrawable(getNoteDrawable(context,special.charAt(0)));
note2v.setImageDrawable(getNoteDrawable(context,special.charAt(1)));
note3v.setImageDrawable(getNoteDrawable(context,special.charAt(2)));
fillerv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,0.4f));
note1v.setLayoutParams(new LinearLayout.LayoutParams(0,50,0.1f));
note2v.setLayoutParams(new LinearLayout.LayoutParams(0,50,0.1f));
note3v.setLayoutParams(new LinearLayout.LayoutParams(0,50,0.1f));
}
if (type.equals("String_Node_Str")) {
String special=weapon.getShellingType();
specialtv.setText(special);
specialtv.setGravity(Gravity.CENTER);
}
if (type.equals("String_Node_Str")) {
String special=weapon.getPhial();
specialtv.setText(special);
specialtv.setGravity(Gravity.CENTER);
}
if (!type.equals("String_Node_Str") && !type.equals("String_Node_Str") && !type.equals("String_Node_Str")) {
DrawSharpness sharpnesstv;
sharpnesstv=(DrawSharpness)view.findViewById(R.id.sharpness);
String sharpString=weapon.getSharpness();
sharpnesstv.init(sharpString);
}
}

Fixed version (ground truth):
@Override public void bindView(View view,Context context,Cursor cursor){
  Weapon weapon=mWeaponCursor.getWeapon();
  TextView nametv=(TextView)view.findViewById(R.id.name);
  TextView attacktv=(TextView)view.findViewById(R.id.attack);
  TextView elementtv=(TextView)view.findViewById(R.id.element);
  TextView awakentv=(TextView)view.findViewById(R.id.awaken);
  TextView slottv=(TextView)view.findViewById(R.id.slot);
  TextView affinitytv=(TextView)view.findViewById(R.id.affinity);
  TextView defensetv=(TextView)view.findViewById(R.id.defense);
  TextView specialtv=(TextView)view.findViewById(R.id.special);
  DrawSharpness sharpnesstv=(DrawSharpness)view.findViewById(R.id.sharpness);
  sharpnesstv.invalidate();
  elementtv.setCompoundDrawables(null,null,null,null);
  specialtv.setCompoundDrawables(null,null,null,null);
  specialtv.setText(null);
  String name="String_Node_Str";
  int wFinal=weapon.getWFinal();
  if (wFinal != 0) {
    name="String_Node_Str";
  }
  name=name + weapon.getName();
  String attack="String_Node_Str" + weapon.getAttack();
  String element=weapon.getElementalAttack();
  String awakenedElement=weapon.getAwakenedElementalAttack();
  String dualElement=null;
  String elementText="String_Node_Str";
  String awakenText="String_Node_Str";
  Drawable dEle=null;
  Drawable dDualEle=null;
  if (awakenedElement != null) {
    element=awakenedElement;
    awakenText="String_Node_Str";
  }
  if (element != null) {
    String[] elementData=getElementData(element);
    elementText=elementData[0];
    dEle=getDrawable(context,elementData[1]);
    if (element.contains("String_Node_Str")) {
      String[] twoElements=elementText.split("String_Node_Str");
      elementText=twoElements[0];
      dualElement=twoElements[1];
      String[] dualElementData=getElementData(dualElement);
      specialtv.setText(dualElementData[0]);
      dDualEle=getDrawable(context,dualElementData[1]);
      dDualEle=scaleDrawable(dDualEle,35,35);
      specialtv.setCompoundDrawables(dDualEle,null,null,null);
      android.view.Display display=((android.view.WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
      specialtv.setPadding((int)(display.getWidth() * 0.16),0,0,0);
    }
    dEle=scaleDrawable(dEle,35,35);
    elementtv.setCompoundDrawables(dEle,null,null,null);
    if (awakenedElement != null) {
      elementText=elementText + "String_Node_Str";
    }
  }
  String slot="String_Node_Str";
switch (weapon.getNumSlots()) {
case 0:
    slot="String_Node_Str";
  break;
case 1:
slot="String_Node_Str";
break;
case 2:
slot="String_Node_Str";
break;
case 3:
slot="String_Node_Str";
break;
default :
slot="String_Node_Str";
break;
}
String affinity="String_Node_Str";
if (weapon.getAffinity() != 0) {
affinity="String_Node_Str" + weapon.getAffinity() + "String_Node_Str";
}
String defense="String_Node_Str";
if (weapon.getDefense() != 0) {
defense="String_Node_Str" + weapon.getDefense();
}
nametv.setText(name);
nametv.setTypeface(null,Typeface.BOLD);
attacktv.setText(attack);
elementtv.setText(elementText);
awakentv.setText(awakenText);
slottv.setText(slot);
affinitytv.setText(affinity);
defensetv.setText(defense);
String type=weapon.getWtype();
if (type.equals("String_Node_Str")) {
String special=weapon.getHornNotes();
specialtv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,0.3f));
ImageView note1v=(ImageView)view.findViewById(R.id.note1);
ImageView note2v=(ImageView)view.findViewById(R.id.note2);
ImageView note3v=(ImageView)view.findViewById(R.id.note3);
TextView fillerv=(TextView)view.findViewById(R.id.filler);
note1v.setImageDrawable(getNoteDrawable(context,special.charAt(0)));
note2v.setImageDrawable(getNoteDrawable(context,special.charAt(1)));
note3v.setImageDrawable(getNoteDrawable(context,special.charAt(2)));
fillerv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,0.4f));
note1v.setLayoutParams(new LinearLayout.LayoutParams(0,50,0.1f));
note2v.setLayoutParams(new LinearLayout.LayoutParams(0,50,0.1f));
note3v.setLayoutParams(new LinearLayout.LayoutParams(0,50,0.1f));
}
if (type.equals("String_Node_Str")) {
String special=weapon.getShellingType();
specialtv.setText(special);
specialtv.setGravity(Gravity.CENTER);
}
if (type.equals("String_Node_Str")) {
String special=weapon.getPhial();
specialtv.setText(special);
specialtv.setGravity(Gravity.CENTER);
}
if (!type.equals("String_Node_Str") && !type.equals("String_Node_Str") && !type.equals("String_Node_Str")) {
String sharpString=weapon.getSharpness();
sharpnesstv.init(sharpString);
}
}