Changes in / [4680fd1:28ba788]


Ignore:
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/data/RouterInfo.java

    r4680fd1 r28ba788  
    1616import java.security.DigestInputStream;
    1717import java.security.MessageDigest;
    18 import java.util.ArrayList;
    1918import java.util.Collection;
    2019import java.util.Collections;
     
    3231import net.i2p.crypto.SHA1Hash;
    3332import net.i2p.crypto.SHA256Generator;
     33import net.i2p.util.CachedIteratorArrayList;
    3434import net.i2p.util.Clock;
    3535import net.i2p.util.Log;
     
    8282   
    8383    public RouterInfo() {
    84         _addresses = new ArrayList(2);
     84        _addresses = new CachedIteratorArrayList<RouterAddress>(2);
    8585        _options = new OrderedProperties();
    8686    }
  • core/java/test/junit/net/i2p/util/CachedIteratorArrayListTest.java

    r4680fd1 r28ba788  
    33import static org.junit.Assert.*;
    44
     5import java.util.Collections;
    56import java.util.Iterator;
    67import java.util.List;
     
    1112public class CachedIteratorArrayListTest {
    1213
    13     private List<Integer> l;
     14    private List<Character> l;
     15    private Iterator<Character> iter;
    1416   
    1517    @Before
    1618    public void setUp() {
    17         l = new CachedIteratorArrayList<Integer>();
    18         l.add(1);
    19         l.add(2);
    20         l.add(3);
     19        l = new CachedIteratorArrayList<Character>();
     20        l.add('a');
     21        l.add('b');
     22        l.add('c');
     23        iter = l.iterator();
    2124    }
    2225   
     26    /** test iterations work */
    2327    @Test
    2428    public void test() {
    25         // test for-each worx
    26         int total = 0;
    27         for (int i : l)
     29        String total = "";
     30       
     31        // two full for-each iterations
     32        for (char i : l)
    2833            total += i;
    29         assertEquals(6, total);
    30         for (int i : l)
     34        assertEquals("abc", total);
     35        for (char i : l)
    3136            total += i;
    32         assertEquals(12, total);
     37        assertEquals("abcabc", total);
    3338       
     39        // and one partial
     40        total = "";
     41        iter = l.iterator();
     42        total += iter.next();
     43        total += iter.next();
     44        iter = l.iterator();
     45        total += iter.next();
     46        assertEquals("aba",total);
    3447    }
    3548   
    3649    @Test
    3750    public void testSameness() {
    38         Iterator<Integer> two = l.iterator();
    39         Iterator<Integer> one = l.iterator();
     51        Iterator<Character> two = l.iterator();
     52        Iterator<Character> one = l.iterator();
    4053        assertSame(one, two);
    4154    }
     55   
     56    @Test
     57    public void testRemove() {
     58        iter.next();
     59        iter.remove();
    4260
     61        // test proper removal
     62        assertEquals(2,l.size());
     63        assertEquals('b',l.get(0).charValue());
     64        assertEquals('c',l.get(1).charValue());
     65       
     66        // test iterator still workx after removal
     67        assertTrue(iter.hasNext());
     68        assertEquals('b',iter.next().charValue());
     69        assertEquals('c',iter.next().charValue());
     70        assertFalse(iter.hasNext());
     71    }
     72   
     73    /**
     74     * tests the Collections.sort method because that is used
     75     * in the router and internally creates iterators
     76     */
     77    @Test
     78    public void testSorting() {
     79        List<Integer> li = new CachedIteratorArrayList<Integer>();
     80        li.add(3);
     81        li.add(2);
     82        li.add(1);
     83        Collections.sort(li);
     84       
     85        Iterator<Integer> ii = li.iterator();
     86        assertEquals(1,ii.next().intValue());
     87        assertEquals(2,ii.next().intValue());
     88        assertEquals(3,ii.next().intValue());
     89       
     90        assertFalse(ii.hasNext());
     91    }
    4392}
  • router/java/src/net/i2p/router/transport/udp/PeerState.java

    r4680fd1 r28ba788  
    1919import net.i2p.router.util.CoDelPriorityBlockingQueue;
    2020import net.i2p.router.util.PriBlockingQueue;
     21import net.i2p.util.CachedIteratorArrayList;
    2122import net.i2p.util.Log;
    2223import net.i2p.util.ConcurrentHashSet;
     
    324325        _rttDeviation = _rtt;
    325326        _inboundMessages = new HashMap(8);
    326         _outboundMessages = new ArrayList(32);
     327        _outboundMessages = new CachedIteratorArrayList<OutboundMessageState>(32);
    327328        //_outboundQueue = new CoDelPriorityBlockingQueue(ctx, "UDP-PeerState", 32);
    328329        _outboundQueue = new PriBlockingQueue(ctx, "UDP-PeerState", 32);
  • router/java/src/net/i2p/router/tunnel/pool/TunnelPool.java

    r4680fd1 r28ba788  
    804804         *
    805805         **/
    806 
     806       
     807        final String rateName = buildRateName();
     808       
    807809        // Compute the average time it takes us to build a single tunnel of this type.
    808810        int avg = 0;
    809         RateStat rs = _context.statManager().getRate(buildRateName());
     811        RateStat rs = _context.statManager().getRate(rateName);
    810812        if (rs == null) {
    811813            // Create the RateStat here rather than at the top because
    812814            // the user could change the length settings while running
    813             _context.statManager().createRequiredRateStat(buildRateName(),
     815            _context.statManager().createRequiredRateStat(rateName,
    814816                                   "Tunnel Build Frequency", "Tunnels",
    815817                                   new long[] { TUNNEL_LIFETIME });
    816             rs = _context.statManager().getRate(buildRateName());
     818            rs = _context.statManager().getRate(rateName);
    817819        }
    818820        if (rs != null) {
     
    891893                       + " std " + wanted + " inProgress " + inProgress + " fallback " + fallback
    892894                       + " for " + toString());
    893             _context.statManager().addRateData(buildRateName(), rv + inProgress, 0);
     895            _context.statManager().addRateData(rateName, rv + inProgress, 0);
    894896            return rv;
    895897        }
     
    944946        int rv = countHowManyToBuild(allowZeroHop, expire30s, expire90s, expire150s, expire210s, expire270s,
    945947                                   expireLater, wanted, inProgress, fallback);
    946         _context.statManager().addRateData(buildRateName(), (rv > 0 || inProgress > 0) ? 1 : 0, 0);
     948        _context.statManager().addRateData(rateName, (rv > 0 || inProgress > 0) ? 1 : 0, 0);
    947949        return rv;
    948950
Note: See TracChangeset for help on using the changeset viewer.