[Demonstration 1]

[Buggy Method]
@Override
public void registerAdapterDataObserver(RecyclerView.AdapterDataObserver observer) {
    decoratedAdapter.registerAdapterDataObserver(observer);
}

[Buggy Hunk]
decoratedAdapter.registerAdapterDataObserver(observer);

[Patch]
if(decoratedAdapter != null) decoratedAdapter.registerAdapterDataObserver(observer);

[Demonstration 2]

[Buggy Method]
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_city);
    mViewPager = (ViewPager) findViewById(R.id.vpPager);
    mCityLab = CityLab.build(getApplicationContext());
    FragmentManager fm = getSupportFragmentManager();
    mViewPager.setAdapter(new FragmentStatePagerAdapter(fm) {

        @Override
        public Fragment getItem(int position) {
            City city = mCityLab.getCity(position);
            return CityFragment.newInstance(city.getId());
        }

        @Override
        public int getCount() {
            return mCityLab.getCities().size();
        }
    });
    String cityID = getIntent().getStringExtra(CityLab.getCityIdTag());
    mCity = mCityLab.getCity(cityID);
    int i = mCityLab.getCities().indexOf(mCity);
    mViewPager.setCurrentItem(i);
    getSupportActionBar().setTitle(mCity.getName() + ", " + mCity.getCountry());
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int position) {
            City city = CityLab.build(getApplicationContext()).getCity(position);
            getSupportActionBar().setTitle(city.getName() + ", " + city.getCountry());
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });
}

[Buggy Hunk]
int i = mCityLab.getCities().indexOf(mCity);

[Patch]
int i = mCityLab.indexOf(mCity);

[Demonstration 3]

[Buggy Method]
public <T> Subscription toSubscription(final Class<T> type, Observer<T> observer) {
    return toObservable(type).subscribe(observer);
}

[Buggy Hunk]
return toObservable(type).subscribe(observer);

[Patch]
return toObservable(type).observeOn(AndroidSchedulers.mainThread()).subscribe(observer);