Make all test loops run the correct number of times
diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/JCSLightLoadUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/JCSLightLoadUnitTest.java
index 274027b..9479fbf 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/JCSLightLoadUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/JCSLightLoadUnitTest.java
@@ -41,7 +41,6 @@
         throws Exception
     {
         JCS.setConfigFilename( "/TestSimpleLoad.ccf" );
-        JCS.getInstance( "testCache1" );
     }
 
     /**
@@ -52,16 +51,13 @@
         throws Exception
     {
         final CacheAccess<String, String> jcs = JCS.getInstance( "testCache1" );
-        //        ICompositeCacheAttributes cattr = jcs.getCacheAttributes();
-        //        cattr.setMaxObjects( 20002 );
-        //        jcs.setCacheAttributes( cattr );
 
-        for ( int i = 1; i <= items; i++ )
+        for ( int i = 1; i < items; i++ )
         {
             jcs.put( i + ":key", "data" + i );
         }
 
-        for ( int i = items; i > 0; i-- )
+        for ( int i = items-1; i > 0; i-- )
         {
             final String res = jcs.get( i + ":key" );
             assertNotNull( "[" + i + ":key] should not be null", res );
diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/TestTCPLateralCache.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/TestTCPLateralCache.java
index 4ec788a..c53389f 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/TestTCPLateralCache.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/TestTCPLateralCache.java
@@ -112,14 +112,14 @@
 
         // Add items to cache
 
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.put( i + ":key", region + " data " + i );
         }
 
         // Test that all items are in cache
 
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final String value = jcs.get( i + ":key" );
 
@@ -128,14 +128,14 @@
 
         // Remove all the items
 
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.remove( i + ":key" );
         }
 
         // Verify removal
 
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             assertNull( "Removed key should be null: " + i + ":key", jcs.get( i + ":key" ) );
         }
diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/ZeroSizeCacheUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/ZeroSizeCacheUnitTest.java
index 1676443..2705a99 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/ZeroSizeCacheUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/ZeroSizeCacheUnitTest.java
@@ -55,7 +55,7 @@
     {

         final CacheAccess<String, String> jcs = JCS.getInstance( "testCache1" );

 

-        for ( int i = 0; i <= items; i++ )

+        for ( int i = 0; i < items; i++ )

         {

             jcs.put( i + ":key", "data" + i );

         }

@@ -74,7 +74,7 @@
         Thread.sleep( 500 );

 

         // do it again.

-        for ( int i = 0; i <= items; i++ )

+        for ( int i = 0; i < items; i++ )

         {

             jcs.put( i + ":key", "data" + i );

         }

diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/block/AbstractBlockDiskCacheUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/block/AbstractBlockDiskCacheUnitTest.java
index c5c1020..be70a4c 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/block/AbstractBlockDiskCacheUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/block/AbstractBlockDiskCacheUnitTest.java
@@ -53,7 +53,7 @@
         final BlockDiskCache<String, String> diskCache = new BlockDiskCache<>(cattr);
 
         // DO WORK
-        for (int i = 0; i <= items; i++)
+        for (int i = 0; i < items; i++)
         {
             diskCache.update(new CacheElement<>(cacheName, i + ":key", cacheName + " data " + i));
         }
@@ -86,7 +86,7 @@
         final BlockDiskCache<String, String> diskCache = new BlockDiskCache<>(cattr);
 
         // DO WORK
-        for (int i = 0; i <= items; i++)
+        for (int i = 0; i < items; i++)
         {
             diskCache.update(new CacheElement<>(cacheName, i + ":key", cacheName + " data " + i));
         }
diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/block/HugeQuantityBlockDiskCacheLoadTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/block/HugeQuantityBlockDiskCacheLoadTest.java
index 943f84f..734d2a3 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/block/HugeQuantityBlockDiskCacheLoadTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/block/HugeQuantityBlockDiskCacheLoadTest.java
@@ -67,7 +67,7 @@
             System.out.println( "Start: " + measureMemoryUse() );

 

             // Add items to cache

-            for ( int i = 0; i <= items; i++ )

+            for ( int i = 0; i < items; i++ )

             {

                 jcs.put( i + ":key", region + " data " + i );

             }

@@ -94,7 +94,7 @@
             // Test that all items are in cache

             System.out.println( "--------------------------" );

             System.out.println( "Retrieving all." );

-            for ( int i = 0; i <= items; i++ )

+            for ( int i = 0; i < items; i++ )

             {

                 //System.out.print(  "\033[s" );

                 final String value = jcs.get( i + ":key" );

diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/AbstractIndexDiskCacheUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/AbstractIndexDiskCacheUnitTest.java
index 15f149a..aac7133 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/AbstractIndexDiskCacheUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/AbstractIndexDiskCacheUnitTest.java
@@ -661,7 +661,7 @@
         final IndexedDiskCache<String, String> diskCache = new IndexedDiskCache<>(cattr);

 

         // DO WORK

-        for (int i = 0; i <= items; i++)

+        for (int i = 0; i < items; i++)

         {

             diskCache.update(new CacheElement<>(cacheName, i + ":key", cacheName + " data " + i));

         }

@@ -694,7 +694,7 @@
         final IndexedDiskCache<String, String> diskCache = new IndexedDiskCache<>(cattr);

 

         // DO WORK

-        for (int i = 0; i <= items; i++)

+        for (int i = 0; i < items; i++)

         {

             diskCache.update(new CacheElement<>(cacheName, i + ":key", cacheName + " data " + i));

         }

diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/HugeQuantityIndDiskCacheLoadTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/HugeQuantityIndDiskCacheLoadTest.java
index fe685e7..539b894 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/HugeQuantityIndDiskCacheLoadTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/HugeQuantityIndDiskCacheLoadTest.java
@@ -57,7 +57,7 @@
 

             // Add items to cache

 

-            for ( int i = 0; i <= items; i++ )

+            for ( int i = 0; i < items; i++ )

             {

                 jcs.put( i + ":key", region + " data " + i );

             }

@@ -74,7 +74,7 @@
 

             // Test that all items are in cache

 

-            for ( int i = 0; i <= items; i++ )

+            for ( int i = 0; i < items; i++ )

             {

                 final String value = jcs.get( i + ":key" );

 

@@ -84,13 +84,13 @@
             System.out.println( "After get: " + measureMemoryUse() );

 

             // // Remove all the items

-            // for ( int i = 0; i <= items; i++ )

+            // for ( int i = 0; i < items; i++ )

             // {

             // jcs.remove( i + ":key" );

             // }

             //

             // // Verify removal

-            // for ( int i = 0; i <= items; i++ )

+            // for ( int i = 0; i < items; i++ )

             // {

             // assertNull( "Removed key should be null: " + i + ":key" + "\n

             // stats " + jcs.getStats(), jcs.get( i + ":key" ) );

diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/IndexedDiskCacheConcurrentUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/IndexedDiskCacheConcurrentUnitTest.java
index f0a2461..3621ade 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/IndexedDiskCacheConcurrentUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/IndexedDiskCacheConcurrentUnitTest.java
@@ -131,13 +131,13 @@
         final CacheAccess<String, String> jcs = JCS.getInstance( region );
 
         // Add items to cache
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.put( i + ":key", region + " data " + i );
         }
 
         // Test that all items are in cache
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final String value = jcs.get( i + ":key" );
 
@@ -146,13 +146,13 @@
 
         // Test that getElements returns all the expected values
         final Set<String> keys = new HashSet<>();
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             keys.add( i + ":key" );
         }
 
         final Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final ICacheElement<String, String> element = elements.get( i + ":key" );
             assertNotNull( "element " + i + ":key is missing", element );
@@ -160,14 +160,14 @@
         }
 
         // Remove all the items
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.remove( i + ":key" );
         }
 
         // Verify removal
         // another thread may have inserted since
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             assertNull( "Removed key should be null: " + i + ":key" + "\n stats " + jcs.getStats(), jcs
                 .get( i + ":key" ) );
diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/IndexedDiskCacheNoMemoryUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/IndexedDiskCacheNoMemoryUnitTest.java
index 4cda36b..063bb3a 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/IndexedDiskCacheNoMemoryUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/indexed/IndexedDiskCacheNoMemoryUnitTest.java
@@ -121,14 +121,14 @@
 
         // Add items to cache
 
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.put( i + ":key", region + " data " + i );
         }
 
         // Test that all items are in cache
 
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final String value = jcs.get( i + ":key" );
 
@@ -137,13 +137,13 @@
 
         // Test that getElements returns all the expected values
         final Set<String> keys = new HashSet<>();
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             keys.add( i + ":key" );
         }
 
         final Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final ICacheElement<String, String> element = elements.get( i + ":key" );
             assertNotNull( "element " + i + ":key is missing", element );
@@ -151,13 +151,13 @@
         }
 
         // Remove all the items
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.remove( i + ":key" );
         }
 
         // Verify removal
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             assertNull( "Removed key should be null: " + i + ":key" + "\n stats " + jcs.getStats(), jcs.get( i + ":key" ) );
         }
diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/JDBCDiskCacheSharedPoolUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/JDBCDiskCacheSharedPoolUnitTest.java
index 250e1d8..cfa0168 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/JDBCDiskCacheSharedPoolUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/JDBCDiskCacheSharedPoolUnitTest.java
@@ -77,7 +77,7 @@
 

         // Add items to cache

 

-        for ( int i = 0; i <= items; i++ )

+        for ( int i = 0; i < items; i++ )

         {

             jcs.put( i + ":key", region + " data " + i );

         }

@@ -85,7 +85,7 @@
         Thread.sleep( 1000 );

 

         // Test that all items are in cache

-        for ( int i = 0; i <= items; i++ )

+        for ( int i = 0; i < items; i++ )

         {

             final String value = jcs.get( i + ":key" );

 

@@ -94,13 +94,13 @@
 

         // Test that getElements returns all the expected values

         final Set<String> keys = new HashSet<>();

-        for ( int i = 0; i <= items; i++ )

+        for ( int i = 0; i < items; i++ )

         {

             keys.add( i + ":key" );

         }

 

         final Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );

-        for ( int i = 0; i <= items; i++ )

+        for ( int i = 0; i < items; i++ )

         {

             final ICacheElement<String, String> element = elements.get( i + ":key" );

             assertNotNull( "element " + i + ":key is missing", element );

@@ -108,13 +108,13 @@
         }

 

         // Remove all the items

-        for ( int i = 0; i <= items; i++ )

+        for ( int i = 0; i < items; i++ )

         {

             jcs.remove( i + ":key" );

         }

 

         // Verify removal

-        for ( int i = 0; i <= items; i++ )

+        for ( int i = 0; i < items; i++ )

         {

             assertNull( "Removed key should be null: " + i + ":key", jcs.get( i + ":key" ) );

         }

diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/hsql/HSQLDiskCacheConcurrentUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/hsql/HSQLDiskCacheConcurrentUnitTest.java
index 85751f6..991d74f 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/hsql/HSQLDiskCacheConcurrentUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/hsql/HSQLDiskCacheConcurrentUnitTest.java
@@ -116,13 +116,13 @@
         final CacheAccess<String, String> jcs = JCS.getInstance( region );
 
         // Add items to cache
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.put( i + ":key", region + " data " + i );
         }
 
         // Test that all items are in cache
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final String value = jcs.get( i + ":key" );
 
@@ -131,13 +131,13 @@
 
         // Test that getElements returns all the expected values
         final Set<String> keys = new HashSet<>();
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             keys.add( i + ":key" );
         }
 
         final Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final ICacheElement<String, String> element = elements.get( i + ":key" );
             assertNotNull( "element " + i + ":key is missing", element );
@@ -145,13 +145,13 @@
         }
 
         // Remove all the items
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.remove( i + ":key" );
         }
 
         // Verify removal
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             assertNull( "Removed key should be null: " + i + ":key", jcs.get( i + ":key" ) );
         }
diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/hsql/HSQLDiskCacheUnitTest.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/hsql/HSQLDiskCacheUnitTest.java
index 741b8c5..6458c9d 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/hsql/HSQLDiskCacheUnitTest.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/hsql/HSQLDiskCacheUnitTest.java
@@ -61,13 +61,13 @@
         final CacheAccess<String, String> jcs = JCS.getInstance( region );
 
         // Add items to cache
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.put( i + ":key", region + " data " + i );
         }
 
         // Test that all items are in cache
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final String value = jcs.get( i + ":key" );
             assertEquals( "key = [" + i + ":key] value = [" + value + "]", region + " data " + i, value );
@@ -75,13 +75,13 @@
 
         // Test that getElements returns all the expected values
         final Set<String> keys = new HashSet<>();
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             keys.add( i + ":key" );
         }
 
         final Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final ICacheElement<String, String> element = elements.get( i + ":key" );
             assertNotNull( "element " + i + ":key is missing", element );
@@ -89,13 +89,13 @@
         }
 
         // Remove all the items
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.remove( i + ":key" );
         }
 
         // Verify removal
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             assertNull( "Removed key should be null: " + i + ":key", jcs.get( i + ":key" ) );
         }
@@ -116,7 +116,7 @@
         final int items = 20;
 
         // Add items to cache
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.put( i + ":key", region + " data " + i );
         }
@@ -132,7 +132,7 @@
 
         jcs.clear();
 
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final String value = jcs.get( i + ":key" );
             assertNull( "value should be null key = [" + i + ":key] value = [" + value + "]", value );
@@ -154,7 +154,7 @@
         final int items = 20;
 
         // Add items to cache
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             jcs.put( i + ":key", region + " data " + i );
         }
@@ -164,7 +164,7 @@
 
         jcs.clear();
 
-        for ( int i = 0; i <= items; i++ )
+        for ( int i = 0; i < items; i++ )
         {
             final String value = jcs.get( i + ":key" );
             assertEquals( "key = [" + i + ":key] value = [" + value + "]", region + " data " + i, value );
diff --git a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/remote/http/client/RemoteHttpCacheManualTester.java b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/remote/http/client/RemoteHttpCacheManualTester.java
index 0af08bd..135409e 100644
--- a/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/remote/http/client/RemoteHttpCacheManualTester.java
+++ b/commons-jcs3-core/src/test/java/org/apache/commons/jcs3/auxiliary/remote/http/client/RemoteHttpCacheManualTester.java
@@ -53,7 +53,7 @@
 
 //        System.out.println( jcs.getStats() );
 
-        for ( int i = 1; i <= items; i++ )
+        for ( int i = 1; i < items; i++ )
         {
             jcs.put( i + ":key", "data" + i );
         }