pátek 22. října 2004

Programátorská hádanka

Ovlivněn sérií programátorských hádanek Reného Steina jsem si usmyselel, že až narazim na nějakou vypečenost resp. chybu podělím se oni. Naneštěstí jsem nemusel čekat dlouho. V business logice aplikačního serveru mam následující kód.

 
public class CisRozpKapService implements ICisRozpKapService {    
    
    private volatile int maxSkupId = 0;
    .
    .
    . 
	
    public int saveSkupina(int kapitola, String nazev) {
        CisRozpKap kap = rozpKapDao.load(kapitola);
        CisRozpKapSkup skup = new CisRozpKapSkup();
        skup.setCisRozpKap(kap);
        skup.setNazev(nazev);
        synchronized(this){
            maxSkupId++;            
        }
        skup.setSkupina(maxSkupId);           
        rozpKapSkupDao.save(skup);        
        return skup.getSkupina().intValue();
    }
    
    .
    .
    .
}
 

Pro upřesnění dodávám,že maxSkupId musí být pro každý ukládáný objekt jedinečné.... Najdete a odtsranité chybu?