Program: 97670
Project: 97670
Buggy source:
@Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
  View v=inflater.inflate(R.layout.tab_installer,container,false);
  txtInstallError=(TextView)v.findViewById(R.id.framework_install_errors);
  txtKnownIssue=(TextView)v.findViewById(R.id.framework_known_issue);
  btnInstall=(Button)v.findViewById(R.id.btnInstall);
  btnUninstall=(Button)v.findViewById(R.id.btnUninstall);
  mInstallersLoading=(ProgressBar)v.findViewById(R.id.loadingInstallers);
  mUninstallersLoading=(ProgressBar)v.findViewById(R.id.loadingUninstallers);
  mInstallersChooser=(Spinner)v.findViewById(R.id.chooserInstallers);
  mUninstallersChooser=(Spinner)v.findViewById(R.id.chooserUninstallers);
  mUpdateView=(CardView)v.findViewById(R.id.updateView);
  mUpdateButton=(Button)v.findViewById(R.id.updateButton);
  mInfoInstaller=(ImageView)v.findViewById(R.id.infoInstaller);
  mInfoUninstaller=(ImageView)v.findViewById(R.id.infoUninstaller);
  mInstallForbidden=(TextView)v.findViewById(R.id.installationForbidden);
  String installedXposedVersion=XposedApp.getXposedProp().get("String_Node_Str");
  if (installedXposedVersion == null) {
    txtInstallError.setText(R.string.installation_lollipop);
    txtInstallError.setTextColor(getResources().getColor(R.color.warning));
  }
 else {
    int installedXposedVersionInt=extractIntPart(installedXposedVersion);
    if (installedXposedVersionInt == XposedApp.getActiveXposedVersion()) {
      txtInstallError.setText(getString(R.string.installed_lollipop,installedXposedVersion));
      txtInstallError.setTextColor(getResources().getColor(R.color.darker_green));
    }
 else {
      txtInstallError.setText(getString(R.string.installed_lollipop_inactive,installedXposedVersion));
      txtInstallError.setTextColor(getResources().getColor(R.color.warning));
    }
  }
  txtInstallError.setVisibility(View.VISIBLE);
  if (!XposedApp.getPreferences().getBoolean("String_Node_Str",false)) {
    final View dontShowAgainView=inflater.inflate(R.layout.dialog_install_warning,null);
    new MaterialDialog.Builder(getActivity()).title(R.string.install_warning_title).customView(dontShowAgainView,false).positiveText(android.R.string.ok).callback(new MaterialDialog.ButtonCallback(){
      @Override public void onPositive(      MaterialDialog dialog){
        super.onPositive(dialog);
        CheckBox checkBox=(CheckBox)dontShowAgainView.findViewById(android.R.id.checkbox);
        if (checkBox.isChecked())         XposedApp.getPreferences().edit().putBoolean("String_Node_Str",true).apply();
      }
    }
).cancelable(false).show();
  }
  new JSONParser(JSON_LINK).execute();
  mInfoInstaller.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      Installer selectedInstaller=(Installer)mInstallersChooser.getSelectedItem();
      String s=getString(R.string.infoInstaller,selectedInstaller.name,selectedInstaller.sdk,selectedInstaller.architecture,selectedInstaller.version);
      new MaterialDialog.Builder(getContext()).title(R.string.info).content(s).positiveText(android.R.string.ok).show();
    }
  }
);
  mInfoUninstaller.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      Uninstaller selectedUninstaller=(Uninstaller)mUninstallersChooser.getSelectedItem();
      String s=getString(R.string.infoUninstaller,selectedUninstaller.name,selectedUninstaller.architecture,selectedUninstaller.date);
      new MaterialDialog.Builder(getContext()).title(R.string.info).content(s).positiveText(android.R.string.ok).show();
    }
  }
);
  btnInstall.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      if (write())       return;
      areYouSure(R.string.warningArchitecture,new MaterialDialog.ButtonCallback(){
        @Override public void onPositive(        MaterialDialog dialog){
          super.onPositive(dialog);
          Installer selectedInstaller=(Installer)mInstallersChooser.getSelectedItem();
          DownloadsUtil.add(getContext(),selectedInstaller.name,selectedInstaller.link,InstallerFragment.this,DownloadsUtil.MIME_TYPES.ZIP,true);
        }
      }
);
    }
  }
);
  btnUninstall.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      if (write())       return;
      areYouSure(R.string.warningArchitecture,new MaterialDialog.ButtonCallback(){
        @Override public void onPositive(        MaterialDialog dialog){
          super.onPositive(dialog);
          Uninstaller selectedUninstaller=(Uninstaller)mUninstallersChooser.getSelectedItem();
          DownloadsUtil.add(getContext(),selectedUninstaller.name,selectedUninstaller.link,InstallerFragment.this,DownloadsUtil.MIME_TYPES.ZIP,true);
        }
      }
);
    }
  }
);
  return v;
}

Fixed version (ground truth):
@Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
  View v=inflater.inflate(R.layout.tab_installer,container,false);
  txtInstallError=(TextView)v.findViewById(R.id.framework_install_errors);
  txtKnownIssue=(TextView)v.findViewById(R.id.framework_known_issue);
  btnInstall=(Button)v.findViewById(R.id.btnInstall);
  btnUninstall=(Button)v.findViewById(R.id.btnUninstall);
  mInstallersLoading=(ProgressBar)v.findViewById(R.id.loadingInstallers);
  mUninstallersLoading=(ProgressBar)v.findViewById(R.id.loadingUninstallers);
  mInstallersChooser=(Spinner)v.findViewById(R.id.chooserInstallers);
  mUninstallersChooser=(Spinner)v.findViewById(R.id.chooserUninstallers);
  mUpdateView=(CardView)v.findViewById(R.id.updateView);
  mUpdateButton=(Button)v.findViewById(R.id.updateButton);
  mInfoInstaller=(ImageView)v.findViewById(R.id.infoInstaller);
  mInfoUninstaller=(ImageView)v.findViewById(R.id.infoUninstaller);
  mInstallForbidden=(TextView)v.findViewById(R.id.installationForbidden);
  String installedXposedVersion=XposedApp.getXposedProp().get("String_Node_Str");
  if (Build.VERSION.SDK_INT >= 21) {
    if (installedXposedVersion == null) {
      txtInstallError.setText(R.string.installation_lollipop);
      txtInstallError.setTextColor(getResources().getColor(R.color.warning));
    }
 else {
      int installedXposedVersionInt=extractIntPart(installedXposedVersion);
      if (installedXposedVersionInt == XposedApp.getActiveXposedVersion()) {
        txtInstallError.setText(getString(R.string.installed_lollipop,installedXposedVersion));
        txtInstallError.setTextColor(getResources().getColor(R.color.darker_green));
      }
 else {
        txtInstallError.setText(getString(R.string.installed_lollipop_inactive,installedXposedVersion));
        txtInstallError.setTextColor(getResources().getColor(R.color.warning));
      }
    }
  }
 else {
    boolean backupXposed=new File("String_Node_Str").exists();
    if (backupXposed) {
      txtInstallError.setText(R.string.installed_no_lollipop);
      txtInstallError.setTextColor(getResources().getColor(R.color.darker_green));
    }
 else {
      txtInstallError.setText(getString(R.string.not_installed_no_lollipop));
      txtInstallError.setTextColor(getResources().getColor(R.color.warning));
    }
  }
  txtInstallError.setVisibility(View.VISIBLE);
  if (!XposedApp.getPreferences().getBoolean("String_Node_Str",false)) {
    final View dontShowAgainView=inflater.inflate(R.layout.dialog_install_warning,null);
    new MaterialDialog.Builder(getActivity()).title(R.string.install_warning_title).customView(dontShowAgainView,false).positiveText(android.R.string.ok).callback(new MaterialDialog.ButtonCallback(){
      @Override public void onPositive(      MaterialDialog dialog){
        super.onPositive(dialog);
        CheckBox checkBox=(CheckBox)dontShowAgainView.findViewById(android.R.id.checkbox);
        if (checkBox.isChecked())         XposedApp.getPreferences().edit().putBoolean("String_Node_Str",true).apply();
      }
    }
).cancelable(false).show();
  }
  new JSONParser(JSON_LINK).execute();
  mInfoInstaller.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      Installer selectedInstaller=(Installer)mInstallersChooser.getSelectedItem();
      String s=getString(R.string.infoInstaller,selectedInstaller.name,selectedInstaller.sdk,selectedInstaller.architecture,selectedInstaller.version);
      new MaterialDialog.Builder(getContext()).title(R.string.info).content(s).positiveText(android.R.string.ok).show();
    }
  }
);
  mInfoUninstaller.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      Uninstaller selectedUninstaller=(Uninstaller)mUninstallersChooser.getSelectedItem();
      String s=getString(R.string.infoUninstaller,selectedUninstaller.name,selectedUninstaller.architecture,selectedUninstaller.date);
      new MaterialDialog.Builder(getContext()).title(R.string.info).content(s).positiveText(android.R.string.ok).show();
    }
  }
);
  btnInstall.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      if (write())       return;
      areYouSure(R.string.warningArchitecture,new MaterialDialog.ButtonCallback(){
        @Override public void onPositive(        MaterialDialog dialog){
          super.onPositive(dialog);
          Installer selectedInstaller=(Installer)mInstallersChooser.getSelectedItem();
          DownloadsUtil.add(getContext(),selectedInstaller.name,selectedInstaller.link,InstallerFragment.this,DownloadsUtil.MIME_TYPES.ZIP,true);
        }
      }
);
    }
  }
);
  btnUninstall.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      if (write())       return;
      areYouSure(R.string.warningArchitecture,new MaterialDialog.ButtonCallback(){
        @Override public void onPositive(        MaterialDialog dialog){
          super.onPositive(dialog);
          Uninstaller selectedUninstaller=(Uninstaller)mUninstallersChooser.getSelectedItem();
          DownloadsUtil.add(getContext(),selectedUninstaller.name,selectedUninstaller.link,InstallerFragment.this,DownloadsUtil.MIME_TYPES.ZIP,true);
        }
      }
);
    }
  }
);
  return v;
}