Salve ragazzi.

Io ho più thread che eseguono questa parte del programma (metodo run):


codice:
OccupaSedia disponibile = new OccupaSedia(nPart,kSedie,nSess);
				System.out.println("Numero sedie disponibili:"+disponibile.getSedie());
				
					sleep(1000);
									if (sedia.getStato("sedia"+i)==false){
					
							sedia.occupa(name,sediam);
							
							disponibile.decrementaSedie();
Arrivato qui mi lancia l'eccezione (Lanciata eccezione metodo decrementa) e non mi decremente.
Questo è il metodo decrementaSedia della classe OccupaSedia:
codice:
public void decrementaSedie(){
		try{
			notifyAll();
			wait();
		
			numSedieDisponibili--;
		notifyAll();
		
		}
		catch(Exception x){System.out.println("Lanciata eccezione metodo decrementa");}
	}
Sapete dirmi perchè? e come si risolve?

Grazie a tutti.