public void testBug4706479() throws Exception {
		Random rnd = new Random( 1234 );
		TCustomHashMap<byte[], Integer> map =
			new TCustomHashMap<byte[], Integer>( new ByteArrayStrategy() );
		List<byte[]> list = new ArrayList<byte[]>();
		List<Integer> expected = new ArrayList<Integer>();

		for ( int i = 0; i < 1000; i++ ) {
			byte[] ba = random( 16, rnd );
			list.add( ba );

			Integer obj = Integer.valueOf( i );
			expected.add( obj );
			map.put( ba, obj );
		}

		assertEquals( list.size(), map.size() );

		// Make sure all the arrays are found in the map
		for( byte[] array : map.keySet() ) {
			boolean found_it = false;
			for( byte[] test : list ) {
				if ( Arrays.equals( test, array ) ) {
					found_it = true;
					break;
				}
			}

			assertTrue( "Unable to find: " + Arrays.toString( array ), found_it );
		}
		// Make sure all the Integers are found in the map
		for( Integer obj : map.values() ) {
			assertTrue( "Unable to find: " + obj, expected.contains( obj ) );
		}

		for ( int i = 0; i < expected.size(); i++ ) {
			assertEquals( expected.get( i ), map.get( list.get( i ) ) );
		}

		// Remove items
		for ( int i = 0; i < list.size(); i++ ) {
			assertEquals( expected.get( i ), map.remove( list.get( i ) ) );
		}

		assertEquals( 0, map.size() );
		assertTrue( map.isEmpty() );

		for ( byte[] aList : list ) {
			assertNull( map.get( aList ) );
		}
	}