[Demonstration 1]

[Buggy Method]
@Override
public void onLocationChanged(Location location) {
    mBuilder.setSound(null);
    mBuilder.mActions.clear();
    if (stationLat != null && stationLong != null) {
        float destLat = Float.parseFloat(stationLat);
        float destLong = Float.parseFloat(stationLong);
        Location destLocation = new Location("destLocation");
        destLocation.setLatitude(destLat);
        destLocation.setLongitude(destLong);
        currentLat = location.getLatitude();
        currentLong = location.getLongitude();
        double distChange = calculateDistance(lastLat, lastLong, currentLat, currentLong);
        currentMSeconds = java.lang.System.currentTimeMillis();
        long timeChange = currentMSeconds - lastMSeconds;
        lastMSeconds = currentMSeconds;
        lastLat = currentLat;
        lastLong = currentLong;
        double distanceMeters = location.distanceTo(destLocation);
        Intent myBroadcastIntent = new Intent(MY_FIRST_INTENT);
        PendingIntent pIntent = PendingIntent.getActivity(MonitoringService.this, (int) System.currentTimeMillis(), myBroadcastIntent, 0);
        double minutesAway = getMinutesAway((distChange * 1000), timeChange, distanceMeters);
        if (minutesAway <= minuteAlert) {
            String currentText = "Get ready! Your stop is in " + String.format("%.1f", minutesAway) + " minutes!";
            mBuilder.setContentText(currentText);
            mBuilder.setContentTitle("Alert! Your stop is next!");
            mBuilder.setContentIntent(pIntent);
            NotificationUtils.displayNotification(mBuilder.mContext, mBuilder);
        } else {
            String currentText = "You are " + String.format("%.1f", minutesAway) + " minutes away.";
            mBuilder.setContentText(currentText);
        }
        mNotifyMgr.notify(mNotificationId, mBuilder.build());
        myBroadcastIntent.putExtra("distance", minutesAway);
        LocalBroadcastManager instance = LocalBroadcastManager.getInstance(MonitoringService.this);
        instance.sendBroadcast(myBroadcastIntent);
    }
    mLastLocation.set(location);
}

[Buggy Hunk]
NotificationUtils.displayNotification(mBuilder.mContext, mBuilder);

[Patch]
displayNotification(mBuilder.mContext, mBuilder);

[Demonstration 2]

[Buggy Method]
@Override
public void onBindViewHolder(FlightViewHolder holder, int position) {
    final Flight f = mFlights[position];
    if (f.getDestinationAirport() != null) {
        holder.vDestination.setText(f.getDestinationAirport().getLocalizedName());
    } else {
        holder.vDestination.setText(f.getDestination());
    }
    DateTimeFormatter dtf = DateTimeFormat.forPattern("HH:mm");
    holder.vPlannedDateTime.setText(dtf.print(f.getPlannedDateTime()));
    if (f.getEstimatedDateTime() != null) {
        holder.vExpectedDateTime.setText(dtf.print(f.getEstimatedDateTime()));
        if (f.getEstimatedDateTime().equals(f.getPlannedDateTime())) {
            holder.vExpectedDateTime.setVisibility(View.GONE);
        } else {
            holder.vExpectedDateTime.setVisibility(View.VISIBLE);
        }
    } else {
        holder.vExpectedDateTime.setVisibility(View.GONE);
    }
    if (f.getFlightStatus() == FlightStatus.NORMAL) {
        holder.vStatusText.setText("");
    } else {
        holder.vStatusText.setText(f.getLocalizedFlightStatus(context).toUpperCase());
    }
    holder.vCompany.setText(f.getAirline().getName());
    holder.vCompanyTag.setBackground(ContextCompat.getDrawable(context, f.getAirline().getBackground()));
    holder.vFlightNumber.setText(f.getFlightNumber());
    if (f.getTerminal() == 1) {
        holder.vTerminal.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.terminal1));
    } else {
        holder.vTerminal.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.terminal2));
    }
    holder.itemView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            FlightAdapter.this.mListener.onRecyclerItemClick(view, f);
        }
    });
}

[Buggy Hunk]
holder.vCompanyTag.setBackground(ContextCompat.getDrawable(context,f.getAirline().getBackground()));

[Patch]
holder.vCompanyTag.setBackgroundResource(f.getAirline().getBackground());

[Demonstration 3]

[Buggy Method]
private ArrayList<EntradaSalidaQuickView> findAllActive(int tipoMov, int sucursalId, boolean active) throws DAOException {
    ArrayList<EntradaSalidaQuickView> r = new ArrayList<EntradaSalidaQuickView>();
    PreparedStatement ps = null;
    ResultSet rs = null;
    Connection conn = null;
    try {
        conn = getConnection();
        String q = "SELECT	ES.ID ES_ID,ES.TIPO_MOV,ES.SUCURSAL_ID,ES.ESTADO_ID,ES.FECHA_CREO,ES.USUARIO_EMAIL_CREO,ES.CLIENTE_ID,ES.FORMA_DE_PAGO_ID,ES.METODO_DE_PAGO_ID,ES.FACTOR_IVA,ES.COMENTARIOS,ES.CFD_ID,ES.NUMERO_TICKET,ES.CAJA,ES.IMPORTE_RECIBIDO,ES.APROBACION_VISA_MASTERCARD,ES.PORCENTAJE_DESCUENTO_CALCULADO,ES.PORCENTAJE_DESCUENTO_EXTRA,ES.CONDICIONES_DE_PAGO,ES.NUM_DE_CUENTA,ES.AUTORIZA_DESCUENTO,\n" + "CFD.ID AS CFD_ID,\n" + "S.NOMBRE AS SUCURSAL_NOMBRE,\n" + "E.DESCRIPCION AS E_DESCRIPCION,\n" + "U.NOMBRE_COMPLETO AS U_NOMBRE_COMPLETO,\n" + "C.RFC AS C_RFC,\n" + "C.RAZON_SOCIAL AS C_RAZON_SOCIAL,\n" + "C.NOMBRE_ESTABLECIMIENTO AS C_NOMBRE_ESTABLECIMIENTO,\n" + "FP.DESCRIPCION AS FP_DESCRIPCION,\n" + "MP.DESCRIPCION AS MP_DESCRIPCION,\n" + "CFD.NUM_CFD AS CFD_NUM_CFD,\n" + "COUNT(1) NUM_ELEMENTOS, \n" + "SUM(ESD.CANTIDAD * ESD.PRECIO_VENTA) AS IMPORTE_BRUTO, \n" + "ESE.FECHA AS FECHA_ACTUALIZO, \n" + "ESE.USUARIO_EMAIL AS USUARIO_ACTUALIZO\n" + "FROM      ENTRADA_SALIDA_ESTADO  ESE,\n" + "          ENTRADA_SALIDA_DETALLE ESD,\n" + "          ENTRADA_SALIDA         ES\n" + "LEFT JOIN CFD            CFD ON ES.CFD_ID      = CFD.ID\n" + "LEFT JOIN SUCURSAL       S   ON ES.SUCURSAL_ID       = S.ID\n" + "LEFT JOIN ESTADO         E   ON ES.ESTADO_ID         = E.ID\n" + "LEFT JOIN USUARIO        U   ON ES.USUARIO_EMAIL_CREO= U.EMAIL\n" + "LEFT JOIN CLIENTE        C   ON ES.CLIENTE_ID        = C.ID\n" + "LEFT JOIN FORMA_DE_PAGO  FP  ON ES.FORMA_DE_PAGO_ID  = FP.ID\n" + "LEFT JOIN METODO_DE_PAGO MP  ON ES.METODO_DE_PAGO_ID = MP.ID\n" + "WHERE     1=1\n" + (active ? "AND       ES.ESTADO_ID IN (1,2,4)\n" : "AND       ES.ESTADO_ID >  4\n") + "AND       ES.ID        = ESD.ENTRADA_SALIDA_ID\n" + "AND       ES.ID        = ESE.ENTRADA_SALIDA_ID\n" + "AND       ES.ESTADO_ID = ESE.ESTADO_ID\n" + "AND       ES.TIPO_MOV  = ?\n" + "AND       ES.SUCURSAL_ID= ?\n" + "GROUP BY  ESD.ENTRADA_SALIDA_ID\n" + "ORDER BY  ES.ID DESC";
        logger.info("->QUERY :" + q);
        ps = conn.prepareStatement(q);
        ps.setInt(1, tipoMov);
        ps.setInt(2, sucursalId);
        rs = ps.executeQuery();
        while (rs.next()) {
            EntradaSalidaQuickView x = new EntradaSalidaQuickView();
            x.setId((Integer) rs.getObject("ES_ID"));
            x.setTipoMov((Integer) rs.getObject("TIPO_MOV"));
            x.setSucursalId((Integer) rs.getObject("SUCURSAL_ID"));
            x.setEstadoId((Integer) rs.getObject("ESTADO_ID"));
            x.setFechaCreo((Timestamp) rs.getObject("FECHA_CREO"));
            x.setUsuarioEmailCreo((String) rs.getObject("USUARIO_EMAIL_CREO"));
            x.setClienteId((Integer) rs.getObject("CLIENTE_ID"));
            x.setFormaDePagoId((Integer) rs.getObject("FORMA_DE_PAGO_ID"));
            x.setMetodoDePagoId((Integer) rs.getObject("METODO_DE_PAGO_ID"));
            x.setFactorIva((Double) rs.getObject("FACTOR_IVA"));
            x.setComentarios((String) rs.getObject("COMENTARIOS"));
            x.setCfdId((Integer) rs.getObject("CFD_ID"));
            x.setNumeroTicket((String) rs.getObject("NUMERO_TICKET"));
            x.setCaja((Integer) rs.getObject("CAJA"));
            x.setImporteRecibido((Double) rs.getObject("IMPORTE_RECIBIDO"));
            x.setAprobacionVisaMastercard((String) rs.getObject("APROBACION_VISA_MASTERCARD"));
            x.setPorcentajeDescuentoCalculado((Integer) rs.getObject("PORCENTAJE_DESCUENTO_CALCULADO"));
            x.setPorcentajeDescuentoExtra((Integer) rs.getObject("PORCENTAJE_DESCUENTO_EXTRA"));
            x.setCondicionesDePago((String) rs.getObject("CONDICIONES_DE_PAGO"));
            x.setNumDeCuenta((String) rs.getObject("NUM_DE_CUENTA"));
            x.setAutorizaDescuento((Integer) rs.getObject("AUTORIZA_DESCUENTO"));
            x.setSucursalNombre((String) rs.getObject("SUCURSAL_NOMBRE"));
            x.setEstadoDescripcion((String) rs.getObject("E_DESCRIPCION"));
            x.setUsuarioNombreCompleto((String) rs.getObject("U_NOMBRE_COMPLETO"));
            x.setClienteRFC((String) rs.getObject("C_RFC"));
            x.setClienteRazonSocial((String) rs.getObject("C_RAZON_SOCIAL"));
            x.setClienteNombreEstablecimiento((String) rs.getObject("C_NOMBRE_ESTABLECIMIENTO"));
            x.setMetodoDePagoDescripcion((String) rs.getObject("MP_DESCRIPCION"));
            x.setFormaDePagoDescripcion((String) rs.getObject("FP_DESCRIPCION"));
            x.setCdfNumCFD((String) rs.getObject("CFD_NUM_CFD"));
            x.setNumElementos(rs.getInt("NUM_ELEMENTOS"));
            x.setImporteBruto(rs.getDouble("IMPORTE_BRUTO"));
            x.setImporteNoGravado(x.getImporteBruto() / (1.0 + x.getFactorIva()));
            //logger.info("========================");
            //logger.info("PEDIDO ID:        :\t"+x.getId());
            //logger.info("IMPORTE BRUTO     :\t"+x.getImporteBruto());
            //logger.info("IMPORTE NO GRABADO:\t"+x.getImporteNoGravado());
            if (x.getImporteBruto() != null && x.getPorcentajeDescuentoCalculado() != null && x.getPorcentajeDescuentoExtra() != null) {
                x.setImporteDescuento((x.getImporteNoGravado() * (x.getPorcentajeDescuentoCalculado() + x.getPorcentajeDescuentoExtra())) / 100.0);
            } else {
                x.setImporteDescuento(0.0);
            }
            x.setImporteIVA((x.getImporteNoGravado() - x.getImporteDescuento()) * Constants.IVA);
            x.setImporteTotal(x.getImporteBruto() - x.getImporteDescuento());
            //logger.info("% DESCUENTOS      :\t"+x.getPorcentajeDescuentoCalculado()+"% + "+x.getPorcentajeDescuentoExtra());
            //logger.info("I.V.A.            :\t"+x.getImporteIVA());
            //logger.info("    T O T A L     :\t"+x.getImporteTotal());
            x.setEstadoActualFecha((Timestamp) rs.getObject("FECHA_ACTUALIZO"));
            x.setEstadoActualUsuarioEmail((String) rs.getObject("USUARIO_ACTUALIZO"));
            r.add(x);
        }
        logger.info("------------------------------");
        logger.info("->FOUND :" + r.size() + " RECORDS.");
    } catch (SQLException ex) {
        logger.log(Level.SEVERE, "SQLException:", ex);
        throw new DAOException("InQuery:" + ex.getMessage());
    } finally {
        if (rs != null) {
            try {
                rs.close();
                ps.close();
                conn.close();
            } catch (SQLException ex) {
                logger.log(Level.SEVERE, "findAll:clossing:", ex);
            }
        }
    }
    return r;
}

[Buggy Hunk]
x.setImporteTotal(x.getImporteBruto() - x.getImporteDescuento());

[Patch]
x.setImporteTotal(x.getImporteNoGravado()- x.getImporteDescuento() + x.getImporteIVA());