[Demonstration 1]

[Buggy Method]
public List<Cue> getCues(long timeUs, Map<String, TtmlStyle> globalStyles, Map<String, TtmlRegion> regionMap) {
    TreeMap<String, SpannableStringBuilder> regionOutputs = new TreeMap<>();
    traverseForText(timeUs, false, regionId, regionOutputs);
    traverseForStyle(globalStyles, regionOutputs);
    List<Cue> cues = new ArrayList<>();
    for (Entry<String, SpannableStringBuilder> entry : regionOutputs.entrySet()) {
        TtmlRegion region = regionMap.get(entry.getKey());
        cues.add(new Cue(cleanUpText(entry.getValue()), null, region.line, Cue.TYPE_UNSET, Cue.TYPE_UNSET, region.position, Cue.TYPE_UNSET, region.width));
    }
    return cues;
}

[Buggy Hunk]
cues.add(new Cue(cleanUpText(entry.getValue()), null, region.line, Cue.TYPE_UNSET,

[Patch]
cues.add(new Cue(cleanUpText(entry.getValue()), null, region.line, region.lineType,

[Demonstration 2]

[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 3]

[Buggy Method]
private void setMode(final int mode) {
    EnumShipCoreMode[] modes = EnumShipCoreMode.values();
    if (mode >= 0 && mode <= modes.length) {
        this.mode = modes[mode];
        markDirty();
        if (WarpDriveConfig.LOGGING_JUMP && hasWorldObj()) {
            WarpDrive.logger.info(this + " Mode set to " + this.mode + " (" + this.mode.getCode() + ")");
        }
    }
}

[Buggy Hunk]
if (mode >= 0 && mode <= modes.length) {

[Patch]
if (modes[mode] != null) {