[Demonstration 1]

[Buggy Method]
public String getClassName() {
    if (mClassList.isEmpty()) {
        return (mClassName.isEmpty()) ? null : mClassName;
    } else {
        String class_name = mClassList.get(0);
        for (int i = 1; i < mClassList.size(); i++) {
            class_name = "," + mClassList.get(i);
        }
        return class_name;
    }
}

[Buggy Hunk]
if (mClassList.isEmpty()) {

[Patch]
if (mClassList == null || mClassList.isEmpty()) {

[Demonstration 2]

[Buggy Method]
@ReactMethod
public void deleteTimer(ExecutorToken executorToken, int timerId) {
    synchronized (mTimerGuard) {
        SparseArray<Timer> timersForContext = mTimerIdsToTimers.get(executorToken);
        if (timersForContext == null) {
            return;
        }
        Timer timer = timersForContext.get(timerId);
        if (timer == null) {
            return;
        }
        // We may have already called/removed it
        mTimerIdsToTimers.remove(timerId);
        mTimers.remove(timer);
    }
}

[Buggy Hunk]
mTimerIdsToTimers.remove(timerId);

[Patch]
mTimerIdsToTimers.remove(executorToken);

[Demonstration 3]

[Buggy Method]
@Exported
public String getNeedDiffTool() {
    if (getExpectedValue() == getActualValue()) {
        return "";
    } else {
        return "true";
    }
}

[Buggy Hunk]
if ( getExpectedValue() ==  getActualValue() ) {

[Patch]
if ( getExpectedValue().equals(getActualValue()) ) {