[Demonstration 1]

[Buggy Method]
public String[] getHostnames() {
    try {
        String[] hosts = JSONUtils.fromJSON(KEY, String[].class);
        return hosts;
    } catch (Exception e) {
        return new String[0];
    }
}

[Buggy Hunk]
String[] hosts = JSONUtils.fromJSON(KEY, String[].class);

[Patch]
String[] hosts = JSONUtils.fromJSON(info.getValue(KEY), String[].class);

[Demonstration 2]

[Buggy Method]
@Override
public void detach() {
    List<WT> wrappedBaseList = getWrappedBaseList();
    int i = 0;
    for (WT el : wrappedBaseList) {
        detach(i, el, false);
        i++;
    }
    webObjectContext = null;
    changeMonitor = null;
}

[Buggy Hunk]
detach(i, el, false);

[Patch]
detach(i, el, false, true);

[Demonstration 3]

[Buggy Method]
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    mView = inflater.inflate(R.layout.fragment_review_timers, container, false);
    setRetainInstance(true);
    mMenuButton = (Button) mView.findViewById(R.id.menuButton);
    mMenuButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mCallback.onMenuButtonPressed();
        }
    });
    mDescriptionButton = (Button) mView.findViewById(R.id.descriptionButton);
    mDescriptionButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast.makeText(getContext(), thisTimerDescription, Toast.LENGTH_LONG).show();
        }
    });
    Bundle bundle = getArguments();
    int timerId = bundle.getInt("timerId");
    StickyTimesTimer[] allTimers = StickyTimesTimer.GetTimers(getContext());
    for (StickyTimesTimer timer : allTimers) {
        if (timer.TimerId == timerId) {
            thisTimer = timer;
            break;
        }
    }
    StickyTimesMarker[] markers = thisTimer.GetMarkers();
    String titleTextString = thisTimer.Name.substring(5);
    mTitleText = (TextView) mView.findViewById(R.id.reviewTimerText);
    mTitleText.setText(titleTextString);
    thisTimerDescription = thisTimer.Description;
    thisTimerName = titleTextString;
    List<String> markerArray = new ArrayList<String>();
    Log.i(TAG, "String marker Array created");
    for (StickyTimesMarker marker : markers) {
        markerArray.add("" + (marker.Offset / 1000.0) + "   " + marker.Description);
    }
    mMarkerArrayAdapter = new ArrayAdapter<String>(mView.getContext(), android.R.layout.simple_list_item_1, markerArray);
    mListView = (ListView) mView.findViewById(R.id.listView);
    if (mView == null) {
        Log.i(TAG, "v is null");
    }
    mListView.setAdapter(mMarkerArrayAdapter);
    return mView;
}

[Buggy Hunk]
String titleTextString = thisTimer.Name.substring(5);

[Patch]
String titleTextString = thisTimer.Name;