INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

Help with Java (data listing)

Help with Java (data listing)

(OP)
Hi
Need some help with my java program. I'm trying to write a java code related to bank transactions (e.g. payment) . My problem is that when a new transaction is entered the account is not updated after making for example payment. It seems problem with indexing (cannot be located or ..).

Any help is appreciated

Here is part code (account update part) :

CODE

public void update(BankRekening rekening){
        this.rekening = rekening;
        System.out.println(this.rekening);
        List<BankRekening> rekeningList = assignRekeningList();
        
        for (BankRekening rObj : rekeningList){
            if (rObj.getRekeningNr().equals(this.rekening.getRekeningNr())){
                int idx = assignRekeningList().indexOf(new BankRekening(rObj.getHouder(),rObj.getRekeningNr(),rObj.getSaldo()));
                //rekeningList.set(getIndex(this.rekening), rekening);
                rekeningList.remove(rObj);
                rekeningList.add(this.rekening);
           }
        }
    } 

getting the following error:

Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:953)
at java.util.LinkedList$ListItr.next(LinkedList.java:886)
at reservaties.dao.BankRekeningDAO.update(BankRekeningDAO.java:41)
at reservaties.services.BankRekeningService.overschrijven(BankRekeningService.java:35)
at reservaties.services.BankRekeningService.overschrijven(BankRekeningService.java:52)
at reservaties.presentation.Reserveren.addReservatie(Reserveren.java:197)
at reservaties.presentation.KlantAccess.jButton2ActionPerformed(KlantAccess.java:149)
at reservaties.presentation.KlantAccess.access$100(KlantAccess.java:26)
at reservaties.presentation.KlantAccess$2.actionPerformed(KlantAccess.java:68)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

RE: Help with Java (data listing)

In the Java Tutorial
http://docs.oracle.com/javase/tutorial/collections...
I found this hint:

Use Iterator instead of the for-each construct when you need to:
Remove the current element. The for-each construct hides the iterator, so you cannot call remove. Therefore, the for-each construct is not usable for filtering.


RE: Help with Java (data listing)

(OP)
Thanks mikrom for your help , I was able to solve it using Iterator.

But now I am having error again after returning to the calling program. I am trying to assign the return value(List) of the called program but it is giving me this error.


Error:
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:953)
at java.util.LinkedList$ListItr.next(LinkedList.java:886)
at reservaties.dao.BankRekeningDAO.update(BankRekeningDAO.java:52)
at reservaties.services.BankRekeningService.overschrijven(BankRekeningService.java:62)

Calling Program:

CODE --> Java

public BankRekening overschrijven(float bedrag,String naarRekeningNr) {
        this.naarRekeningNr = naarRekeningNr;
        this.bedrag = bedrag;
        
        List<BankRekening> rekeningList = assignRekeningList();
        
        for (BankRekening rObj : rekeningList) {
            if (rObj.getRekeningNr().equals(this.naarRekeningNr)) {
                this.houder = rObj.getHouder();
                naarsaldo = rObj.getSaldo()-this.bedrag;
            }
        }
        BankRekening naarRekening = new BankRekening(this.houder,this.naarRekeningNr,naarsaldo);

        return naarRekening; 
    }
    
    public List<BankRekening> overschrijven(float bedrag, String vanRekeningNr, String naarRekeningNr) {

        this.bedrag = bedrag;
        this.vanRekeningNr = vanRekeningNr;
        this.naarRekeningNr = naarRekeningNr;
        
        List<BankRekening> rekeningList = assignRekeningList();
        for (BankRekening rObj : rekeningList) {
            if (rObj.getRekeningNr().equals(this.vanRekeningNr)) {
                this.houder = rObj.getHouder();
                vansaldo = rObj.getSaldo()-this.bedrag;
             }
        }
        
        BankRekening naarRekening = overschrijven(bedrag, naarRekeningNr);
        
        BankRekeningDAO rekeningdao1 = new BankRekeningDAO();
        rList1 = rekeningdao1.update(naarRekening,rekeningList);
        
        for (BankRekening rObj : rList1) {
            System.out.println("ServiceNaar "+rObj.getRekeningNr()+"  "+rObj.getSaldo());
        }
        
        BankRekeningDAO rekeningdao2 = new BankRekeningDAO();
        rList2 = rekeningdao2.update(new BankRekening(this.houder,this.vanRekeningNr,vansaldo), rList1);
       
        for (BankRekening zObj : rList2){
            System.out.println("ServiceVan "+zObj.getHouder()+"  "+ zObj.getSaldo());
        }
        return rList2;
    }
    
} 

Called Program:

CODE --> Java

public List<BankRekening> update(BankRekening rekening, List<BankRekening> rekeningList){
        this.rekening = rekening;
        this.rekeningList = rekeningList;
        List<BankRekening> rList = rekeningList;
   
        String houder = this.rekening.getHouder();
        String rekeningNr = this.rekening.getRekeningNr();
        float saldo = this.rekening.getSaldo();
        
        Iterator<BankRekening> it = this.rekeningList.iterator();
        while (it.hasNext()) {
            BankRekening itRekening = it.next();
            String ithouder = itRekening.getHouder();
            String itrekeningNr = itRekening.getRekeningNr();
            float itsaldo = itRekening.getSaldo();
            
            if (itrekeningNr.equals(rekeningNr)) {
                it.remove();
                
                rList.add(new BankRekening(houder,rekeningNr,saldo));
                for (BankRekening zObj : this.rekeningList){
                    System.out.println(zObj.getHouder()+"  "+ zObj.getSaldo());
                }
            }
        }
        return rList;
   } 

RE: Help with Java (data listing)

It's the same problem again, you can't modify a list while iterating it.

Cheers,
Dian

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close