[Demonstration 1]

[Buggy Method]
public static void actionNewStatus(String status, boolean updateNSClientInfo, int nightscoutversioncode, String nightscoutversionname, int nsclientversioncode, String nsclientversionname) {
    boolean nsUploadOnly = SP.getBoolean(R.string.key_ns_upload_only, false);
    if (nsUploadOnly)
        return;
    boolean hasStatus = status == null;
    if (updateNSClientInfo) {
        // for ver 1.2.3 contains 10203
        ConfigBuilderPlugin.nightscoutVersionCode = nightscoutversioncode;
        ConfigBuilderPlugin.nightscoutVersionName = nightscoutversionname;
        // for ver 1.17 contains 117
        ConfigBuilderPlugin.nsClientVersionCode = nsclientversioncode;
        ConfigBuilderPlugin.nsClientVersionName = nsclientversionname;
        log.debug("Got versions: NSClient: " + ConfigBuilderPlugin.nsClientVersionName + " Nightscout: " + ConfigBuilderPlugin.nightscoutVersionName);
        try {
            if (ConfigBuilderPlugin.nsClientVersionCode < MainApp.instance().getPackageManager().getPackageInfo(MainApp.instance().getPackageName(), 0).versionCode) {
                Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.sResources.getString(R.string.unsupportedclientver), Notification.URGENT);
                MainApp.bus().post(new EventNewNotification(notification));
            } else {
                MainApp.bus().post(new EventDismissNotification(Notification.OLD_NSCLIENT));
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        if (ConfigBuilderPlugin.nightscoutVersionCode < Config.SUPPORTEDNSVERSION) {
            Notification notification = new Notification(Notification.OLD_NS, MainApp.sResources.getString(R.string.unsupportednsversion), Notification.URGENT);
            MainApp.bus().post(new EventNewNotification(notification));
        } else {
            MainApp.bus().post(new EventDismissNotification(Notification.OLD_NS));
        }
    } else {
        Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.sResources.getString(R.string.unsupportedclientver), Notification.URGENT);
        MainApp.bus().post(new EventNewNotification(notification));
    }
    if (hasStatus) {
        try {
            JSONObject statusJson = new JSONObject(status);
            NSSettingsStatus.getInstance().setData(statusJson);
            if (Config.logIncommingData)
                log.debug("Received status: " + statusJson.toString());
            Double targetHigh = NSSettingsStatus.getInstance().getThreshold("bgTargetTop");
            Double targetlow = NSSettingsStatus.getInstance().getThreshold("bgTargetBottom");
            if (targetHigh != null)
                OverviewPlugin.bgTargetHigh = targetHigh;
            if (targetlow != null)
                OverviewPlugin.bgTargetLow = targetlow;
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

[Buggy Hunk]
boolean hasStatus = status == null;

[Patch]
boolean hasStatus = status != null;

[Demonstration 2]

[Buggy Method]
@Override
public void visit(Object obj) {
    if (!isVisited(obj))
        map.put(obj, map.size());
}

[Buggy Hunk]
map.put(obj, map.size());

[Patch]
list.add(obj);

[Demonstration 3]

[Buggy Method]
@Override
public void onPause() {
    super.onPause();
    if (isScanning()) {
        scanSubscription.unsubscribe();
    }
}

[Buggy Hunk]
if (isScanning()) {

[Patch]
if (scanSubscription != null) {