[Demonstration 1]

[Buggy Method]
@Override
public boolean needRefreshBeforeOpen(Date lastRefreshTime) {
    Calendar now = Calendar.getInstance();
    int dayOfWeek = now.get(Calendar.DAY_OF_WEEK);
    if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {
        return false;
    }
    LocalTime lt = LocalTime.fromCalendarFields(now);
    if (lt.isBefore(this.barOpenTime) && lt.isAfter(this.barCloseTime)) {
        //market is closed;
        if (lastRefreshTime.after(new LocalDate().toDate())) {
            return false;
        } else {
            return true;
        }
    } else {
        return false;
    }
}

[Buggy Hunk]
if(lastRefreshTime.after(new LocalDate().toDate())){

[Patch]
if(lastRefreshTime != null && lastRefreshTime.after(new LocalDate().toDate())){

[Demonstration 2]

[Buggy Method]
public void borrowerHasBorrowedBooks(String borrower, String isbns) throws BookAlreadyBorrowedException {
    List<String> isbnList = getListOfItems(isbns);
    for (String isbn : isbnList) {
        Book book = DemoBookFactory.createDemoBook().withISBN(isbn).build();
        book = bookService.createBook(book.getTitle(), book.getAuthor(), book.getEdition(), isbn, book.getYearOfPublication());
        bookService.borrowBook(book, borrower);
    }
}

[Buggy Hunk]
book.getYearOfPublication());

[Patch]
book.getYearOfPublication(), null);

[Demonstration 3]

[Buggy Method]
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    /**
     * Setup the DrawerLayout and NavigationView
     */
    //deklarasi variable berdasarkan id di activity main
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
    mNavigationView = (NavigationView) findViewById(R.id.slidingmenu);
    mtoolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
    //mTitle = getTitle();
    /**
     * Lets inflate the very first fragment
     * Here , we are inflating the TabFragment as the first Fragment
     */
    mFragmentManager = getSupportFragmentManager();
    mFragmentTransaction = mFragmentManager.beginTransaction();
    mFragmentTransaction.replace(R.id.containerView, new BerandaFragment()).commit();
    /**
     * Setup click events on the Navigation View Items.
     */
    mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            mDrawerLayout.closeDrawers();
            if (menuItem.getItemId() == R.id.beranda) {
                FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                xfragmentTransaction.replace(R.id.containerView, new BerandaFragment()).commit();
                //set title
                mtoolbar.setTitle(R.string.berandafragment);
            }
            if (menuItem.getItemId() == R.id.panduan) {
                FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                fragmentTransaction.replace(R.id.containerView, new PanduanFragment()).commit();
                //set title
                mtoolbar.setTitle(R.string.panduanfragment);
            }
            if (menuItem.getItemId() == R.id.tentang) {
                FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                fragmentTransaction.replace(R.id.containerView, new TentangFragment()).commit();
                //set title
                mtoolbar.setTitle(R.string.tentangfragment);
            }
            if (menuItem.getItemId() == R.id.lokasi) {
                FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                fragmentTransaction.replace(R.id.containerView, new MapFragment()).commit();
                //set title
                mtoolbar.setTitle(R.string.lokasifragment);
            }
            return false;
        }
    });
    /**
     * Setup Drawer Toggle of the Toolbar
     */
    ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mtoolbar, R.string.app_name, R.string.app_name);
    mDrawerLayout.setDrawerListener(mDrawerToggle);
    mDrawerToggle.syncState();
}

[Buggy Hunk]
if (menuItem.getItemId() == R.id.tentang) {

[Patch]
if (menuItem.getItemId() == R.id.informasi) {