Program: 17513
Project: 17513
Buggy source:
@Override public View onCreateView(final LayoutInflater inflater,final ViewGroup container,Bundle savedInstanceState){
  mActivity=(RashrActivity)getActivity();
  final ScrollView root=(ScrollView)inflater.inflate(R.layout.fragment_recovery_system,container,false);
  mContext=root.getContext();
  final AppCompatTextView tvTitle=(AppCompatTextView)root.findViewById(R.id.tvSysName);
  tvTitle.setText(mTitle.toUpperCase());
  final AppCompatTextView tvDesc=(AppCompatTextView)root.findViewById(R.id.tvRecSysDesc);
  tvDesc.setText(mDesc);
  final AppCompatSpinner spVersions=(AppCompatSpinner)root.findViewById(R.id.spVersions);
  ArrayList<String> formatedVersions=new ArrayList<>();
  for (  String versionLinks : mVersions) {
    formatedVersions.add(formatName(versionLinks,mTitle));
  }
  final ArrayAdapter<String> adapter=new ArrayAdapter<>(root.getContext(),android.R.layout.simple_list_item_1,formatedVersions);
  spVersions.setAdapter(adapter);
  spVersions.setSelection(0);
  final AppCompatTextView tvDev=(AppCompatTextView)root.findViewById(R.id.tvDevName);
  tvDev.setText(mDev);
  final AppCompatImageView imLogo=(AppCompatImageView)root.findViewById(R.id.ivRecLogo);
  if (mLogo == 0) {
    root.removeView(imLogo);
  }
 else {
    imLogo.setImageResource(mLogo);
  }
  final AppCompatButton bFlash=(AppCompatButton)root.findViewById(R.id.bFlashRecovery);
  bFlash.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      flashSupportedRecovery(mTitle,mVersions.get(spVersions.getSelectedItemPosition()));
    }
  }
);
  final LinearLayout ScreenshotLayout=(LinearLayout)root.findViewById(R.id.ScreenshotLayout);
  if (mScreenshotURL == null) {
    Log.d(Const.RASHR_TAG,"String_Node_Str");
    ((ViewGroup)ScreenshotLayout.getParent()).removeView(ScreenshotLayout);
  }
 else {
    try {
      Downloader jsonDownloader=new Downloader(new URL(mScreenshotURL + "String_Node_Str"),new File(mContext.getExternalCacheDir(),"String_Node_Str"));
      jsonDownloader.setOverrideFile(true);
      jsonDownloader.setOnDownloadListener(new Downloader.OnDownloadListener(){
        @Override public void onSuccess(        File file){
          try {
            JSONArray arr=new JSONArray(Common.fileContent(file));
            for (int i=0; i < arr.length(); i++) {
              final String name=arr.get(i).toString();
              if (name.equals("String_Node_Str") || name.equals("String_Node_Str") || name.equals("String_Node_Str"))               continue;
              Downloader imageDownloader=new Downloader(new URL(mScreenshotURL + "String_Node_Str" + name),new File(file.getParentFile(),name));
              imageDownloader.setOverrideFile(false);
              imageDownloader.setOnDownloadListener(new Downloader.OnDownloadListener(){
                @Override public void onSuccess(                File file){
                  AppCompatImageView iv=(AppCompatImageView)inflater.inflate(R.layout.recovery_screenshot,null);
                  Bitmap screenshot=BitmapFactory.decodeFile(file.toString());
                  iv.setImageBitmap(screenshot);
                  ScreenshotLayout.addView(iv);
                }
                @Override public void onFail(                Exception e){
                }
              }
);
              imageDownloader.download();
            }
          }
 catch (          JSONException e) {
            e.printStackTrace();
          }
catch (          IOException e) {
            onFail(e);
          }
        }
        @Override public void onFail(        Exception e){
          e.printStackTrace();
        }
      }
);
      jsonDownloader.download();
    }
 catch (    MalformedURLException e) {
      e.printStackTrace();
    }
  }
  return root;
}

Fixed version (ground truth):
@Override public View onCreateView(final LayoutInflater inflater,final ViewGroup container,Bundle savedInstanceState){
  mActivity=(RashrActivity)getActivity();
  final ScrollView root=(ScrollView)inflater.inflate(R.layout.fragment_recovery_system,container,false);
  mContext=root.getContext();
  final AppCompatTextView tvTitle=(AppCompatTextView)root.findViewById(R.id.tvSysName);
  tvTitle.setText(mTitle.toUpperCase());
  final AppCompatTextView tvDesc=(AppCompatTextView)root.findViewById(R.id.tvRecSysDesc);
  tvDesc.setText(mDesc);
  final AppCompatSpinner spVersions=(AppCompatSpinner)root.findViewById(R.id.spVersions);
  ArrayList<String> formatedVersions=new ArrayList<>();
  for (  String versionLinks : mVersions) {
    formatedVersions.add(formatName(versionLinks,mTitle));
  }
  final ArrayAdapter<String> adapter=new ArrayAdapter<>(root.getContext(),android.R.layout.simple_list_item_1,formatedVersions);
  spVersions.setAdapter(adapter);
  spVersions.setSelection(0);
  final AppCompatTextView tvDev=(AppCompatTextView)root.findViewById(R.id.tvDevName);
  tvDev.setText(mDev);
  final AppCompatImageView imLogo=(AppCompatImageView)root.findViewById(R.id.ivRecLogo);
  if (mLogo == 0) {
    root.removeView(imLogo);
  }
 else {
    imLogo.setImageResource(mLogo);
  }
  final AppCompatButton bFlash=(AppCompatButton)root.findViewById(R.id.bFlashRecovery);
  bFlash.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      flashSupportedRecovery(mTitle,mVersions.get(spVersions.getSelectedItemPosition()));
    }
  }
);
  final LinearLayout ScreenshotLayout=(LinearLayout)root.findViewById(R.id.ScreenshotLayout);
  if (mScreenshotURL == null) {
    Log.d(Const.RASHR_TAG,"String_Node_Str");
    ((ViewGroup)ScreenshotLayout.getParent()).removeView(ScreenshotLayout);
  }
 else {
    try {
      Downloader jsonDownloader=new Downloader(new URL(mScreenshotURL + "String_Node_Str"),new File(mContext.getExternalCacheDir(),"String_Node_Str"));
      jsonDownloader.setOverrideFile(true);
      jsonDownloader.setOnDownloadListener(new Downloader.OnDownloadListener(){
        @Override public void onSuccess(        File file){
          try {
            JSONArray arr=new JSONArray(Common.fileContent(file));
            for (int i=0; i < arr.length(); i++) {
              final String name=arr.get(i).toString();
              if (name.equals("String_Node_Str") || name.equals("String_Node_Str") || name.equals("String_Node_Str"))               continue;
              Downloader imageDownloader=new Downloader(new URL(mScreenshotURL + "String_Node_Str" + name),new File(file.getParentFile(),name));
              imageDownloader.setOverrideFile(false);
              imageDownloader.setOnDownloadListener(new Downloader.OnDownloadListener(){
                @Override public void onSuccess(                File file){
                  AppCompatImageView iv=(AppCompatImageView)inflater.inflate(R.layout.recovery_screenshot,null);
                  try {
                    Bitmap screenshot=BitmapFactory.decodeFile(file.toString());
                    iv.setImageBitmap(screenshot);
                    ScreenshotLayout.addView(iv);
                  }
 catch (                  OutOfMemoryError e) {
                    RashrApp.ERRORS.add("String_Node_Str" + file.toString() + "String_Node_Str"+ e.toString());
                  }
                }
                @Override public void onFail(                Exception e){
                }
              }
);
              imageDownloader.download();
            }
          }
 catch (          JSONException e) {
            e.printStackTrace();
          }
catch (          IOException e) {
            onFail(e);
          }
        }
        @Override public void onFail(        Exception e){
          e.printStackTrace();
        }
      }
);
      jsonDownloader.download();
    }
 catch (    MalformedURLException e) {
      e.printStackTrace();
    }
  }
  return root;
}