[Demonstration 1]

[Buggy Method]
private IRubyObject yieldSpecificInternal(ThreadContext context, IRubyObject value, IRubyObject self, RubyModule klass, boolean isArray, Binding binding, Type type) {
    IRubyObject[] args = (value == null) ? IRubyObject.NULL_ARRAY : convertValueIntoArgArray(context, value, true, isArray);
    return commonYieldPath(context, args, self, klass, binding, type, Block.NULL_BLOCK);
}

[Buggy Hunk]
IRubyObject[] args = (value == null) ? IRubyObject.NULL_ARRAY : convertValueIntoArgArray(context, value, true, isArray);

[Patch]
IRubyObject[] args = getYieldArgs(context, value, true, isArray, type);

[Demonstration 2]

[Buggy Method]
public void setMessage(String message) {
    if (message != null && isShowing()) {
        tvMessage.setText(message);
    }
}

[Buggy Hunk]
if (message != null && isShowing()) {

[Patch]
if (message != null && tvMessage != null) {

[Demonstration 3]

[Buggy Method]
private void setLocation(String location, double lat, double lng) {
    if (forFilterSettings()) {
        Intent intent = new Intent();
        intent.putExtra("desireLocation", location);
        intent.putExtra("desireLocationLat", Double.toString(lat));
        intent.putExtra("desireLocationLng", Double.toString(lng));
        if (mSettingsLocation != null) {
            intent.putExtra("desireLocationName", mSettingsLocation.getDescription());
            intent.putExtra("desireLocationId", Long.toString(mSettingsLocation.getId()));
        } else {
            intent.putExtra("desireLocationName", "");
            intent.putExtra("desireLocationId", "");
        }
        setResult(1, intent);
        finish();
    } else if (forDesireDetail()) {
        finish();
    } else {
        // DesireCreate
        String title = getIntent().getExtras().getString("desireTitle");
        String description = getIntent().getExtras().getString("desireDescription");
        String price = getIntent().getExtras().getString("desirePrice");
        //String reward = getIntent().getExtras().getString("desireReward");
        String currency = getIntent().getExtras().getString("desireCurrency");
        Uri image = getIntent().getExtras().getParcelable("desireImage");
        Category cat = (Category) getIntent().getSerializableExtra("desireCategory");
        Intent intent = new Intent(this, DesireCreateActivity3rdStep.class);
        intent.putExtra("desireTitle", title);
        intent.putExtra("desireDescription", description);
        intent.putExtra("desirePrice", price);
        //intent.putExtra("desireReward", reward);
        intent.putExtra("desireCurrency", currency);
        intent.putExtra("desireImage", image);
        intent.putExtra("desireLocation", location);
        intent.putExtra("desireLocationLat", Double.toString(lat));
        intent.putExtra("desireLocationLng", Double.toString(lng));
        intent.putExtra("desireCategory", cat);
        startActivity(intent);
    }
}

[Buggy Hunk]
}else{ // DesireCreate

[Patch]
}else if(!forDesireDetail() && !forFilterSettings()){ // DesireCreate