[Demonstration 1]

[Buggy Method]
private void handleVelocityMessage(VelocityMessage message) {
    if (!trackRecognitionFinished) {
        trackAnalyzer.addTrackVelocity(message.getVelocity(), message.getTimeStamp());
    } else {
        //TODO
        physicLearnHelper.handleVelocityMessage(message.getTimeStamp());
        switch(physicLearnHelper.state) {
            case MOVE_TO_CHECKPOINTDESTINATION:
            case MOVE_TO_HALF_TRACKSECTION:
            case MEASURE:
                currentPower = runPower;
                break;
            case BRAKE:
                currentPower = 0;
                break;
            case FINISHED:
                double dv1 = message.getVelocity();
                double v1 = dv1 / 2;
                double t1 = physicLearnHelper.getMeasureTime();
                double v2 = physicLearnHelper.getV2();
                double dv2 = physicLearnHelper.getDV2();
                double t2 = physicLearnHelper.getT2();
                double p = (double) currentPower;
                physicModelCalculator.calcConstE(v1, dv1, t1, v2, dv2, t2, p);
                physicModelCalculator.calcFrictions();
                physicModelCalculator.calculateDistances();
                Track track = physicModelCalculator.getTrack();
                //TODO: Carposition setzen? PhysikModel mitsenden bzw. nur der E wert
                track.setCar(physicLearnHelper.GetCarPositionOnTrack());
                track.getCar().setVelocity(getLastVelocity(track.getCar().getSection(), track));
                TrackAndPhysicModelStorage storage = new TrackAndPhysicModelStorage(track, physicModel);
                pilot.tell(storage, ActorRef.noSender());
                break;
        }
    }
}

[Buggy Hunk]
track.getCar().setVelocity(getLastVelocity(track.getCar().getSection(),track));

[Patch]
track.getCarPosition().setVelocity(dv1);

[Demonstration 2]

[Buggy Method]
@Test
public void addTrackSettingId() throws Exception {
    Track track = newTrack();
    trackDao.add(track);
    assertEquals(1, track.getId());
    assertEquals("Android", track.getTrackName());
    assertEquals("Learn android and Java", track.getTrackDetails());
    assertEquals("PDX", track.getLocationCity());
}

[Buggy Hunk]
assertEquals(1, track.getId());

[Patch]
assertEquals(1, track.getTrackId());

[Demonstration 3]

[Buggy Method]
private boolean animatorFinished() {
    if (!mFinished && mRunningList.isEmpty()) {
        mFinished = true;
        if (mListener != null) {
            mListener.onFinished();
        }
        recycle();
        return true;
    }
    return false;
}

[Buggy Hunk]
if (!mFinished && mRunningList.isEmpty()){

[Patch]
if (!mFinished && mRunningList.isEmpty() && mTotalDuration > 0){