Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #26827

Odd ConcurrentModificationException

From Knute Johnson <september@knutejohnson.com>
Newsgroups comp.lang.java.programmer
Subject Odd ConcurrentModificationException
Date 2013-12-10 09:41 -0800
Organization A noiseless patient Spider
Message-ID <l87jo5$5vt$1@dont-email.me> (permalink)

Show all headers | View raw


I'm getting an odd ConcurrentModificationException in a MouseListener 
when I try to remove an element from an ArrayList.  The really strange 
thing about it is that the exception occurs every other time I call 
remove().  The ArrayList is only accessed on the EDT and I tried 
wrapping it in Collections.synchronizedList but that made no difference.

The ArrayList variable is boxes and the type is DisplayBox, an extended 
JComponent.  The error shows the line number of the for instruction but 
actually fails on the remove(box) call.

Any ideas on where to start looking?

Thanks,

knute...


     public void mousePressed(MouseEvent me) {
         if (me.getButton() == MouseEvent.BUTTON1) {
             System.out.println("Mouse1 Down");
             mouseDown = true;
             startX = me.getX();
             startY = me.getY();
         } else if (me.getButton() == MouseEvent.BUTTON3) {
             System.out.println("Mouse3 Down");
             for (DisplayBox box : boxes) {
                 if (box.getBounds().contains(me.getX(),me.getY())) {
                     remove(box);
                     boxes.remove(box);
                 }
             }
             repaint();
         }
     }

Mouse3 Down
Exception in thread "AWT-EventQueue-0" 
java.util.ConcurrentModificationException

         at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
         at java.util.ArrayList$Itr.next(Unknown Source)
         at 
com.knutejohnson.stationcasinos.backgroundgenerator.Yard$1.mousePress
ed(Yard.java:47)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown 
Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
         at java.awt.EventQueue.access$200(Unknown Source)
         at java.awt.EventQueue$3.run(Unknown Source)
         at java.awt.EventQueue$3.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at 
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
         at 
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
         at java.awt.EventQueue$4.run(Unknown Source)
         at java.awt.EventQueue$4.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at 
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown 
Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown 
Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
-- 

Knute Johnson

Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Odd ConcurrentModificationException Knute Johnson <september@knutejohnson.com> - 2013-12-10 09:41 -0800
  Re: Odd ConcurrentModificationException Eric Sosman <esosman@comcast-dot-net.invalid> - 2013-12-10 14:22 -0500
  Re: Odd ConcurrentModificationException Knute Johnson <september@knutejohnson.com> - 2013-12-10 13:10 -0800

csiph-web