Sono sempre stata una sega con i cicli for... infatti questo (pezzo di) metodo non lavora come mi aspetterei:

codice:
        for (Offerta key : offerte.values()) {
            if (key.getIdAsta() == idAsta) { //controllo se esistono gia' offerte per quell'asta
                if (key.getOfferta() != null && key.getOfferta() >= importo) {
                    return 0; //l'offerta non e' superiore all'ultima inserita o al prezzo base
                } else {
                    //se tutto corretto inserisco la nuova offerta
                    ultimoId++;
                    Offerta nuovaOfferta = new Offerta (ultimoId, offerente, importo, idAsta);
                    offerte.put(ultimoId, nuovaOfferta);
                    break;
                }
            }
        }
        db.commit();
        db.close();
        return 1;
Il return 0 avviene solo quando l'offerta (importo) inserita e' inferiore al prezzo base (sarebbe il valore che in teoria è estratto da key.getOfferta()) ma se l'offerta e' inferiore ad un'offerta gia' inserita mi fa un return 1 che sarebbe in teoria il codice del tutto corretto, cioè offerta inserita correttamente. Ma mi sembra evidente che in realta' le offerte non le sta inserendo altrimenti non mi spiego come possa superare questo controllo (key.getOfferta() != null && key.getOfferta() >= importo).
Spero di essermi spiegata.
Dove sbaglio? Grazie.