Program: 162568
Project: 162568
Buggy source:
@Override public void onBindViewHolder(RecyclerView.ViewHolder vholder,int position1){
  final RarAdapter.ViewHolder holder=(RarAdapter.ViewHolder)vholder;
  if (position1 == 0) {
    holder.rl.setMinimumHeight(zipViewer.paddingTop);
    return;
  }
  final FileHeader rowItem=enter.get(position1 - 1);
  zipViewer.elements.add(position1 - 1,headerRequired(rowItem));
  final int p=position1 - 1;
  GradientDrawable gradientDrawable=(GradientDrawable)holder.imageView.getBackground();
  holder.imageView.setImageDrawable(Icons.loadMimeIcon(zipViewer.getActivity(),rowItem.getFileNameString(),false));
  holder.txtTitle.setText(rowItem.getFileNameString().substring(rowItem.getFileNameString().lastIndexOf("String_Node_Str") + 1));
  if (rowItem.isDirectory()) {
    holder.imageView.setImageDrawable(folder);
    gradientDrawable.setColor(Color.parseColor(zipViewer.skin));
  }
 else {
    if (zipViewer.coloriseIcons) {
      if (Icons.isVideo(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isAudio(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isPdf(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isCode(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isText(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isArchive(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isgeneric(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       gradientDrawable.setColor(Color.parseColor(zipViewer.skin));
    }
 else     gradientDrawable.setColor(Color.parseColor(zipViewer.skin));
  }
  holder.rl.setOnLongClickListener(new View.OnLongClickListener(){
    @Override public boolean onLongClick(    View view){
      toggleChecked(p);
      return false;
    }
  }
);
  holder.imageView.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View view){
      final Animation animation=AnimationUtils.loadAnimation(zipViewer.getActivity(),R.anim.holder_anim);
      holder.imageView.setAnimation(animation);
      toggleChecked(p);
    }
  }
);
  Boolean checked=myChecked.get(p);
  if (checked != null) {
    if (zipViewer.mainActivity.theme1 == 0) {
      holder.rl.setBackgroundResource(R.drawable.safr_ripple_white);
    }
 else {
      holder.rl.setBackgroundResource(R.drawable.safr_ripple_black);
    }
    if (checked) {
      holder.imageView.setImageDrawable(zipViewer.getResources().getDrawable(R.drawable.abc_ic_cab_done_holo_dark));
      gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
      if (Build.VERSION.SDK_INT >= 21) {
        holder.rl.setElevation(6f);
      }
 else {
        if (zipViewer.mainActivity.theme1 == 0) {
          holder.rl.setBackgroundColor(c.getResources().getColor(R.color.safr_pressed));
        }
 else {
          holder.rl.setBackgroundColor(c.getResources().getColor(R.color.safr_pressed_dark));
        }
      }
    }
 else {
      if (Build.VERSION.SDK_INT >= 21) {
        holder.rl.setElevation(0f);
      }
    }
  }
  holder.rl.setOnClickListener(new View.OnClickListener(){
    public void onClick(    View p1){
      if (zipViewer.selection)       toggleChecked(p);
 else {
        if (rowItem.isDirectory()) {
          zipViewer.elements.clear();
          new RarHelperTask(zipViewer,rowItem.getFileNameString()).execute(zipViewer.f);
        }
 else {
          if (headerRequired(rowItem) != null) {
            FileHeader fileHeader=headerRequired(rowItem);
            File file1=new File(c.getCacheDir().getAbsolutePath() + "String_Node_Str" + fileHeader.getFileNameString());
            zipViewer.files.clear();
            zipViewer.files.add(0,file1);
            new ZipExtractTask(zipViewer.archive,c.getCacheDir().getAbsolutePath(),zipViewer.mainActivity,fileHeader.getFileNameString(),false,fileHeader).execute();
          }
        }
      }
    }
  }
);
}

Fixed version (ground truth):
@Override public void onBindViewHolder(RecyclerView.ViewHolder vholder,int position1){
  final RarAdapter.ViewHolder holder=(RarAdapter.ViewHolder)vholder;
  if (position1 == 0) {
    holder.rl.setMinimumHeight(zipViewer.paddingTop);
    return;
  }
  final FileHeader rowItem=enter.get(position1 - 1);
  zipViewer.elements.add(position1 - 1,headerRequired(rowItem));
  final int p=position1 - 1;
  GradientDrawable gradientDrawable=(GradientDrawable)holder.imageView.getBackground();
  holder.imageView.setImageDrawable(Icons.loadMimeIcon(zipViewer.getActivity(),rowItem.getFileNameString(),false));
  holder.txtTitle.setText(rowItem.getFileNameString().substring(rowItem.getFileNameString().lastIndexOf("String_Node_Str") + 1));
  if (rowItem.isDirectory()) {
    holder.imageView.setImageDrawable(folder);
    gradientDrawable.setColor(Color.parseColor(zipViewer.iconskin));
  }
 else {
    if (zipViewer.coloriseIcons) {
      if (Icons.isVideo(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isAudio(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isPdf(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isCode(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isText(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isArchive(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       if (Icons.isgeneric(rowItem.getFileNameString()))       gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
 else       gradientDrawable.setColor(Color.parseColor(zipViewer.iconskin));
    }
 else     gradientDrawable.setColor(Color.parseColor(zipViewer.iconskin));
  }
  holder.rl.setOnLongClickListener(new View.OnLongClickListener(){
    @Override public boolean onLongClick(    View view){
      toggleChecked(p);
      return false;
    }
  }
);
  holder.imageView.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View view){
      final Animation animation=AnimationUtils.loadAnimation(zipViewer.getActivity(),R.anim.holder_anim);
      holder.imageView.setAnimation(animation);
      toggleChecked(p);
    }
  }
);
  Boolean checked=myChecked.get(p);
  if (checked != null) {
    if (zipViewer.mainActivity.theme1 == 0) {
      holder.rl.setBackgroundResource(R.drawable.safr_ripple_white);
    }
 else {
      holder.rl.setBackgroundResource(R.drawable.safr_ripple_black);
    }
    if (checked) {
      holder.imageView.setImageDrawable(zipViewer.getResources().getDrawable(R.drawable.abc_ic_cab_done_holo_dark));
      gradientDrawable.setColor(Color.parseColor("String_Node_Str"));
      if (Build.VERSION.SDK_INT >= 21) {
        holder.rl.setElevation(6f);
      }
 else {
        if (zipViewer.mainActivity.theme1 == 0) {
          holder.rl.setBackgroundColor(c.getResources().getColor(R.color.safr_pressed));
        }
 else {
          holder.rl.setBackgroundColor(c.getResources().getColor(R.color.safr_pressed_dark));
        }
      }
    }
 else {
      if (Build.VERSION.SDK_INT >= 21) {
        holder.rl.setElevation(0f);
      }
    }
  }
  holder.rl.setOnClickListener(new View.OnClickListener(){
    public void onClick(    View p1){
      if (zipViewer.selection)       toggleChecked(p);
 else {
        if (rowItem.isDirectory()) {
          zipViewer.elements.clear();
          new RarHelperTask(zipViewer,rowItem.getFileNameString()).execute(zipViewer.f);
        }
 else {
          if (headerRequired(rowItem) != null) {
            FileHeader fileHeader=headerRequired(rowItem);
            File file1=new File(c.getCacheDir().getAbsolutePath() + "String_Node_Str" + fileHeader.getFileNameString());
            zipViewer.files.clear();
            zipViewer.files.add(0,file1);
            new ZipExtractTask(zipViewer.archive,c.getCacheDir().getAbsolutePath(),zipViewer.mainActivity,fileHeader.getFileNameString(),false,fileHeader).execute();
          }
        }
      }
    }
  }
);
}