Changeset 81240a5


Ignore:
Timestamp:
Aug 29, 2011 12:50:25 AM (9 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
92ffea2
Parents:
f8df357
Message:

revert change causing ConcurrentModificationExceptions?

Location:
router/java/src/net/i2p/router
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • router/java/src/net/i2p/router/RouterVersion.java

    rf8df357 r81240a5  
    1919    public final static String ID = "Monotone";
    2020    public final static String VERSION = CoreVersion.VERSION;
    21     public final static long BUILD = 2;
     21    public final static long BUILD = 3;
    2222
    2323    /** for example "-test" */
  • router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java

    rf8df357 r81240a5  
    9494
    9595        synchronized (_selectors) {
    96             for (Iterator<MessageSelector> iter = _selectors.iterator(); iter.hasNext(); ) {
    97                 MessageSelector sel = iter.next();
    98                 if (sel == null)
    99                     continue;
     96            // ConcurrentModificationException - why?
     97            //for (Iterator<MessageSelector> iter = _selectors.iterator(); iter.hasNext(); ) {
     98            //    MessageSelector sel = iter.next();
     99            for (int i = 0; i < _selectors.size(); i++) {
     100                MessageSelector sel = (MessageSelector)_selectors.get(i);
    100101                boolean isMatch = sel.isMatch(message);
    101102                if (isMatch) {
     
    105106                        if (removedSelectors == null) removedSelectors = new ArrayList(1);
    106107                        removedSelectors.add(sel);
    107                         iter.remove();
     108                        //iter.remove();
     109                        _selectors.remove(i);
     110                        i--;
    108111                    }
    109112                }
     
    259262        public void timeReached() {
    260263            long now = _context.clock().now();
    261             List<MessageSelector> removing = new ArrayList(1);
     264            List<MessageSelector> removing = new ArrayList(8);
    262265            synchronized (_selectors) {
    263                 for (Iterator<MessageSelector> iter = _selectors.iterator(); iter.hasNext(); ) {
    264                     MessageSelector sel = iter.next();
     266                // CME?
     267                //for (Iterator<MessageSelector> iter = _selectors.iterator(); iter.hasNext(); ) {
     268                //    MessageSelector sel = iter.next();
     269                for (int i = 0; i < _selectors.size(); i++) {
     270                    MessageSelector sel = (MessageSelector)_selectors.get(i);
    265271                    long expiration = sel.getExpiration();
    266272                    if (expiration <= now) {
    267273                        removing.add(sel);
    268                         iter.remove();
     274                        //iter.remove();
     275                        _selectors.remove(i);
     276                        i--;
    269277                    } else if (expiration < _nextExpire || _nextExpire < now) {
    270278                        _nextExpire = expiration;
Note: See TracChangeset for help on using the changeset viewer.