[Demonstration 1]

[Buggy Method]
public void startView(int fps) {
    Thread t = new Thread("Render thread") {

        @Override
        public void run() {
            long delay = 1000000000 / fps;
            long lastFrame = System.nanoTime();
            while (true) {
                long ns = System.nanoTime();
                if (ns - lastFrame >= delay) {
                    lastFrame = ns;
                    try {
                        frame.renderScreen();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                try {
                    long remaining = (System.nanoTime() - lastFrame - delay) - 10000;
                    if (remaining > 0)
                        Thread.sleep(remaining / 1000000, (int) (remaining % 1000000));
                } catch (InterruptedException e) {
                }
            }
        }
    };
    t.setPriority(Thread.MAX_PRIORITY);
    t.start();
}

[Buggy Hunk]
long remaining = (System.nanoTime() - lastFrame - delay) - 10000;

[Patch]
long remaining = lastFrame + delay - System.nanoTime() - 1000000;

[Demonstration 2]

[Buggy Method]
void printCommonStat() {
    float delta = 10000 - totalHours;
    int iYears = 0;
    float fYears = 0;
    float partOfyear = 0;
    int month = 0;
    int deltaDays = 0;
    System.out.println("--------------------------------------------------");
    for (int i = 2; i < 8; i++) {
        fYears = (delta / i) / 365;
        iYears = (int) fYears;
        partOfyear = fYears - iYears;
        month = (int) (12 * partOfyear);
        System.out.print(i + " hours every day - " + (int) delta / i + " days (~");
        System.out.print(iYears + " years ");
        System.out.println(month + " months)");
    }
    deltaDays = (int) (new Date().getTime() - startDate.getTime()) / 1000 / 60 / 60 / 24;
    System.out.println("\nThe average value of your proctivity: " + Math.round(totalHours / deltaDays * 100) / 100.0 + " hours per day");
}

[Buggy Hunk]
deltaDays = (int)(new Date().getTime()- startDate.getTime())/1000/60/60/24;

[Patch]
deltaDays = -(int)(new Date().getTime()- startDate.getTime())/1000/60/60/24;

[Demonstration 3]

[Buggy Method]
@Override
public boolean shouldChange() {
    return (startTime - System.nanoTime()) > duration;
}

[Buggy Hunk]
return (startTime - System.nanoTime()) > duration;

[Patch]
return (System.nanoTime() - startTime) > duration;