Iterator iterator = descriptors.iterator();
while (iterator.hasNext()) {
ClassDescriptor descriptor = (ClassDescriptor)iterator.next();
try {
AbstractSession session = getSessionForClass(descriptor.getJavaClass());
if (descriptor.requiresInitialization(session)) {
descriptor.preInitialize(session);
} else if (descriptor.hasTablePerMultitenantPolicy()) {
// If the descriptor doesn't require initialization and
// has a table per tenant policy then add to the list
// to be cloned and initialized per client session.