Thread + stack + synchronization.



I have problem with Producent-Consument-Buffer.

Below is my Buffer class with wstaw (in english PUSH) and pobierz (POP)
methods, main class Glowny and Producent class. I thint that is all ok,
but when i try to compile there is exception:

Exception in thread "Thread-0" java.lang.NullPointerException
at zadanie7a.Producent.run(Producent.java:14)

Maybe i forgot something? I don't have any idea what i'm doing wrong.
Please help.


//////////////////
//Buffer classs
//////////////////

import java.util.Stack;

public class Bufor {
private int dlugosc;
private Stack bufor;

public Bufor() {
this.dlugosc = 0;
}

public synchronized void wstaw(String znak) {

while (dlugosc == Glowny.rozBufora) {
try {
System.out.println("Czekam na zwolnienie bufora.");
wait();
} catch (InterruptedException e) {}
}

System.out.println("Wstawiam do bufora "+znak);
bufor.push(znak);
dlugosc++;
ntifyAll();
}

public synchronized void pobierz() {
while (dlugosc == 0) {
try {
System.out.println("Czekam na zapisanie bufora.");
wait();
} catch (InterruptedException e) {}
}
dlugosc--;
bufor.pop();
notifyAll();
}
}

///////////////////
// Producent class
//////////////////

import java.util.Random;

public class Producent extends Thread {
Random r = new Random();
String s = "Element";

public void run() {
while(true) {
Glowny.bufor.wstaw(s); // here is this error
try { sleep(new Random().nextInt(5000));}
catch (InterruptedException e) {}
}
}
}

///////////////////
// Main class
///////////////////

package zadanie7a;

public class Glowny {
public static int rozBufora = 10;
public static Bufor bufor;
public static String s = "Element";

public static void main(String[] args){
Producent p = new Producent();
Konsument k = new Konsument();
p.start();
}
}

.