Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

izuzatak ConcurrentModificationException ??

[es] :: Java :: izuzatak ConcurrentModificationException ??

[ Pregleda: 1729 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Arbitar2
Arbitar2
Serbia

Član broj: 51869
Poruke: 39
*.dynamic.sbb.co.yu.



Profil

icon izuzatak ConcurrentModificationException ??14.04.2007. u 21:43 - pre 207 meseci
Pokusavam da kreiram metodu koja ce da pokupi sve produkte iz Notepada i prebaci ih u current Basket,naravno ako taj produkt vec postoji u basketu dodaj samo kolicinu,a ako ne, dodaje produkt. Problem mi se javlja kada pokusavam da dodam novi produkt u basket, prijavljuje mi izuzetak ConcurrentModificationException .Znam da ne moze da se menja kolekcija(Lista) dok je u iteraciji ,ali ja ne mogu da se setim ni jednog resenja.Vec sam izgubio par sati na tome. Ovo je jedan od pokusaja. Code izgleda ovako:
Code:


public void sendNotepadToBasket(){
                
        List<ProductBasket> prodBasket=new LinkedList<ProductBasket>();
        prodBasket=basket.getProductsBasket();
        
        if(basket==null){
            Basket newBasket=new Basket(currentNotepad);
            saveObject(newBasket);
        }else{
            try{
                for(ProductBasket pbb:basket.getProductsBasket()){        
                    for(ProductBasket pb:currentNotepad.getProductBaskets()){
                        if(pb.getProduct().equals(pbb.getProduct())){
                            pbb.addQuantity(pb.getQuantity());
                        }else{
                            ProductBasket newField =new ProductBasket(pb);
                            prodBasket.add(newField);
                        }
                    }
                }
                // avoiding ConcurrentModificationException exception
                basket.setProductsBasket(prodBasket);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    
        currentNotepad=null;

    }
    


Svaka pomoc je dobrodosla!

[Ovu poruku je menjao Arbitar2 dana 14.04.2007. u 23:02 GMT+1]
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl-2.sezampro.yu.



+13 Profil

icon Re: izuzatak ConcurrentModificationException ??14.04.2007. u 22:07 - pre 207 meseci
Samo sam na brzaka pregledao, i sad, nevezano za pitanje, radis neke potpuno nelogicne stvari:

Code:

List<ProductBasket> prodBasket=new LinkedList<ProductBasket>();
prodBasket=basket.getProductsBasket();


Prvo napravis novu listu, a onda preusmeris referencu.

Drugo:

Code:

prodBasket=basket.getProductsBasket();
        
if(basket==null){


Pa ako je basket null, onda ce ti puci null pointer na prvoj liniji...

Na kojoj liniji ti puca tacno, na ovoj:

Code:

prodBasket.add(newField);


?
 
Odgovor na temu

Arbitar2
Arbitar2
Serbia

Član broj: 51869
Poruke: 39
*.dynamic.sbb.co.yu.



Profil

icon Re: izuzatak ConcurrentModificationException ??14.04.2007. u 22:15 - pre 207 meseci
To je jedan samo od pokusaja, ali kako vise razmisljam sve su mi gluplji potezi. Da bas tu puca.Sto se tice prvog dela to sam samo na brzaka postavio,prosledjujem sigurno non-null vrednost basketa.
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl-2.sezampro.yu.



+13 Profil

icon Re: izuzatak ConcurrentModificationException ??14.04.2007. u 22:44 - pre 207 meseci
Pa nista, stvar je jako prosta. Vidi ovo:

Code:

prodBasket=basket.getProductsBasket();


i ovo:

Code:

for(ProductBasket pbb:basket.getProductsBasket()){ 


a zatim:

Code:

prodBasket.add(newField);


Dakle, malo si zakomplikovao kod, ali u svakom slucaju je jasno da je sve to jedan te isti objekat. I ti onda pokusavas dok si u petlji koja prolazi kros tu listu da dodas nesto u nju. E to ne moze i zato ti izlece izuzetak.

Resenje je da u else grani u nekoj skroz sestoj listi pamtis objekte koji su za dodavanje. Kada prodjes spoljasnju for petlju, onda protrci kroz listu objekata za dodavanje i dodaj je u svoju listu (to sada moze, jer lista u koju dodajes nije lista kroz koju se iterira).
 
Odgovor na temu

[es] :: Java :: izuzatak ConcurrentModificationException ??

[ Pregleda: 1729 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.