@Test
    public void testDeepIndexMappingWithCustomConverter() {
        mapper = getMapper("mappings/deepMappingWithIndexedFieldsByCustomConverter.xml");
        First first = new First();
        Last last = mapper.map(first, Last.class);
        assertNotNull("nested third object should not be null", last.getThird());
        assertNotNull("name should not be null", last.getThird().getName());
        assertEquals(first.getSecondArray()[0].getThirdArray()[7].getName(), last.getThird().getName());
    }
TestCase to reproduce the bug#1845706.
<p>
Originally, error happens when users define a multi-level indexed mapping like
"secondArray[0].thirdArray[7]".  When parsing, XMLParser will replace all indexes,
thus this custom mapping is translated into "secondArray.thirdArray".  However, this will cause
com.github.dozermapper.core.util.mapping.propertydescriptor.GetterSetterPropertyDescriptor(line105~110)
incorrectly invoke the getter method, getThirdArray(), on the array object instead of array's
specific element, thus causing Reflection throws
"java.lang.IllegalArgumentException: object is not an instance of declaring class".
<p>
To fix this problem, let com.github.dozermapper.core.XMLParser only replace the last
indexes in getFieldNameOfIndexedField.
core/src/test/java/com/github/dozermapper/core/functional_tests/DeepMappingWithIndexTest.java