[Demonstration 1]

[Buggy Method]
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {
    // If your preview can change or rotate, take care of those events here.
    // Make sure to stop the preview before resizing or reformatting it.
    Log.d(TAG, "surfaceChanged");
    if (mHolder.getSurface() == null) {
        // preview surface does not exist
        return;
    }
    // stop preview before making changes
    try {
        mCamera.stopPreview();
    } catch (Exception e) {
        // ignore: tried to stop a non-existent preview
    }
    // set preview size and make any resize, rotate or
    // reformatting changes here
    try {
        try {
            Camera.Parameters params = mCamera.getParameters();
            if (params.getSupportedPreviewSizes() != null) {
                List<Camera.Size> sizePictures = params.getSupportedPictureSizes();
                for (Camera.Size s : sizePictures) {
                    Log.d(TAG, s.width + "x" + s.height);
                }
                int positionOfSize = 4;
                if (sizePictures.size() > positionOfSize) {
                    params.setPictureSize(sizePictures.get(positionOfSize).width, sizePictures.get(positionOfSize).height);
                }
            }
            mRotate = getRotationDegrees();
            params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
            params.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);
            params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
            params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
            params.setJpegQuality(100);
            params.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
            params.setRotation(mRotate);
            mCamera.setParameters(params);
            mCamera.setDisplayOrientation(displayOrientation);
            mCamera.setPreviewDisplay(mHolder);
            mCamera.startPreview();
        } catch (IOException e) {
            Log.d(TAG, "Error setting camera preview: " + e.getMessage());
        }
    } catch (Exception e) {
        Log.d(TAG, "Error starting camera preview: " + e.getMessage());
    }
}

[Buggy Hunk]
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);

[Patch]
params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);

[Demonstration 2]

[Buggy Method]
@Override
public void onSurfaceRedrawNeeded(SurfaceHolder holder) {
    super.onSurfaceRedrawNeeded(holder);
    if (drawable != null)
        draw(holder, null);
}

[Buggy Hunk]
if (drawable != null) draw(holder, null);

[Patch]
draw(holder, null);

[Demonstration 3]

[Buggy Method]
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LOG.i(TAG, "onCreate method");
    sendAgainButton = (Button) findViewById(R.id.btn_send_again);
    sendAgainButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Toast.makeText(view.getContext(), "You clicked me again!", Toast.LENGTH_SHORT).show();
        }
    });
}

[Buggy Hunk]
LOG.i(TAG, "onCreate method");

[Patch]
Log.i(TAG, "onCreate method");