Program: 94903
Project: 94903
Buggy source:
@Override public void onBindViewHolder(ViewHolder viewHolder,int position){
  final JSONObject appData=recommendedApps.optJSONObject(position);
  if (appData == null)   return;
  viewHolder.actionButtonContainer.setVisibility(View.GONE);
  final String appId=appData.optString(APP_ID_ATTRIBUTE,null);
  final String appName=appData.optString(APP_NAME_ATTRIBUTE);
  final String appDescription=appData.optString(APP_DESCRIPTION_ATTRIBUTE);
  final String appIconUrl=appData.optString(APP_ICON_URL_ATTRIBUTE,null);
  viewHolder.appTitle.setText(appName);
  viewHolder.appDescription.setText(appDescription);
  if (appId != null) {
    final ImageView appImageView=viewHolder.appIcon;
    final Bitmap cachedBmp=appsIconPerId.get(appId);
    if (cachedBmp != null) {
      appImageView.setImageBitmap(cachedBmp);
    }
 else     if (appIconUrl != null) {
      new DownloadImageTask(appId,appImageView,appsIconPerId).execute(appIconUrl);
    }
    viewHolder.actionButtonContainer.setVisibility(View.VISIBLE);
    Intent tmpIntent=context.getPackageManager().getLaunchIntentForPackage(appId);
    if (tmpIntent != null) {
      viewHolder.actionButton.setText(R.string.label_action_button_open);
      viewHolder.actionButton.setBackgroundResource(R.drawable.action_button_open_bg);
    }
 else {
      tmpIntent=new Intent(Intent.ACTION_VIEW).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).setData(Uri.parse("String_Node_Str" + appId));
      viewHolder.actionButton.setText(R.string.label_action_button_install);
      viewHolder.actionButton.setBackgroundResource(R.drawable.action_button_install_bg);
    }
    final Intent launchIntent=tmpIntent;
    viewHolder.actionButton.setOnClickListener(new View.OnClickListener(){
      @Override public void onClick(      View v){
        context.startActivity(launchIntent);
      }
    }
);
  }
}

Fixed version (ground truth):
@Override public void onBindViewHolder(ViewHolder viewHolder,int position){
  final JSONObject appData=recommendedApps.optJSONObject(position);
  if (appData == null)   return;
  viewHolder.actionButtonContainer.setVisibility(View.GONE);
  final String appId=appData.optString(APP_ID_ATTRIBUTE,null);
  final String appName=appData.optString(APP_NAME_ATTRIBUTE);
  final String appDescription=appData.optString(APP_DESCRIPTION_ATTRIBUTE);
  final String appIconUrl=appData.optString(APP_ICON_URL_ATTRIBUTE,null);
  viewHolder.appTitle.setText(appName);
  viewHolder.appDescription.setText(appDescription);
  if (appId != null) {
    final ImageView appImageView=viewHolder.appIcon;
    final Bitmap cachedBmp=appsIconPerId.get(appId);
    if (cachedBmp != null) {
      appImageView.setImageBitmap(cachedBmp);
    }
 else     if (appIconUrl != null) {
      new DownloadImageTask(this.context,appId,appImageView,appsIconPerId).execute(appIconUrl);
    }
    viewHolder.actionButtonContainer.setVisibility(View.VISIBLE);
    Intent tmpIntent=context.getPackageManager().getLaunchIntentForPackage(appId);
    if (tmpIntent != null) {
      viewHolder.actionButton.setText(R.string.label_action_button_open);
      viewHolder.actionButton.setBackgroundResource(R.drawable.action_button_open_bg);
    }
 else {
      tmpIntent=new Intent(Intent.ACTION_VIEW).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).setData(Uri.parse("String_Node_Str" + appId));
      viewHolder.actionButton.setText(R.string.label_action_button_install);
      viewHolder.actionButton.setBackgroundResource(R.drawable.action_button_install_bg);
    }
    final Intent launchIntent=tmpIntent;
    viewHolder.actionButton.setOnClickListener(new View.OnClickListener(){
      @Override public void onClick(      View v){
        context.startActivity(launchIntent);
      }
    }
);
  }
}