Details
Description
An ArrayIndexOutOfBoundsException is being thrown by ClassMetaData.getExtraFieldDataIndex()
I am providing a test case. The only thing special is that the entities are set up in a hexagon shape, where the entities above have a OneToMany relationship with those below. The one at the very bottom has ManyToOne relationships with the two entities above it and I think this seems to be the cause of the problem.
I have done some debugging on this and here is where I have gotten to:
The problem is somewhere around the JDBCStoreManager.initializeState method
first time through, the mapping object is org.apache.openjpa.persistence.jdbc.query.HexagonBottom and the mappedByFieldMapping is
org.apache.openjpa.persistence.jdbc.query.HexagonBottom.lowerLeftId (looks good), index is 6
second time through, the mapping object is org.apache.openjpa.persistence.jdbc.query.HexagonLowerRight and the mappedByFieldMapping is still org.apache.openjpa.persistence.jdbc.query.HexagonBottom.lowerLeftId, so the index is still 6, but the HexagonLowerRight object only has 4 fields in it so the exception is thrown.