This stems from BasicHibernateAnnotationsTest's use of isCleanupTestDataRequired == true. When that's the case, the ORM test suite attempts a "delete from java.lang.Object", relying on polymorphism to delete all data from all entities. The order of those classes are determined by a simple Map#values in SessionFactoryImpl#getImplementors. It appears JDK8 has, once again, changed iteration ordering.
Really, I'm kind of surprised this worked to begin with. Realistically, deleting from java.lang.Object doesn't typically happen anywhere outside of tests. This will likely be a test-only fix, forcing #testFilterOnCollection to clean up its relationships prior to the one-shot delete.
|