@Test
	public void testArrayOfArrays() throws Exception
	{
		PersistenceManager persist = new PersistenceManager(driver, database, login, password);
		persist.dropTable(Object.class);

		int arraySize = 5;

		ComplexObject co = new ComplexObject();
		SimplestObject[][][] array = new SimplestObject[arraySize][arraySize][1];
		for (int x = 0; x < array.length; x++)
		{
			for (int y = 0; y < array[x].length; y++)
			{
				array[x][y][0] = new SimplestObject();
			}
		}
		co.setObject(array);
		co.setSimplestObject(new SimplestObject());
		persist.saveObject(co);
		ComplexObject co2 = new ComplexObject();
		SimplestObject[][][] array2 = new SimplestObject[1][][];
		array2[0] = array[0];
		co2.setObject(array2);
		persist.saveObject(co2);
		persist.close();
		persist = new PersistenceManager(driver, database, login, password);
		List<ComplexObject> cos = persist.getObjects(new ComplexObject());
		assertEquals(2, cos.size());
		co = cos.get(0);
		co2 = cos.get(1);
		if(co.getSimplestObject()==null)
		{
			co = cos.get(1);
			co2 = cos.get(0);
		}
		SimplestObject[][][] resArray = (SimplestObject[][][]) co.getObject();
		assertTrue(resArray != null);
		assertEquals(arraySize, resArray.length);
		assertEquals(arraySize, resArray[0].length);
		assertEquals(1, resArray[0][0].length);

		for (int x = 0; x < resArray.length; x++)
		{
			for (int y = 0; y < resArray[0].length; y++)
			{
				assertTrue(resArray[x][y][0] != null);
			}
		}
		SimplestObject[][][] resArray2 = (SimplestObject[][][]) co2.getObject();
		assertTrue(resArray != resArray2);
		assertArrayEquals(resArray[0], resArray2[0]);

		persist.close();
	}