code: private void checkInheritedForeignkey(CollectionDescriptorDef collDef, String checkLevel) throws ConstraintException
      {
          if (CHECKLEVEL_NONE.equals(checkLevel))
          {
              return;
          }
          if (!collDef.isInherited() && !collDef.isNested())
          {
              return;
          }
          if (!collDef.hasProperty(PropertyHelper.OJB_PROPERTY_INDIRECTION_TABLE))
          {
              return;
          }
  
          String localFk     = collDef.getProperty(PropertyHelper.OJB_PROPERTY_FOREIGNKEY);
          String inheritedFk = collDef.getOriginal().getProperty(PropertyHelper.OJB_PROPERTY_FOREIGNKEY);
  
          if (!CommaListIterator.sameLists(localFk, inheritedFk))
          {
              throw new ConstraintException("The foreignkey property has been changed for the m:n collection "+collDef.getName()+" in class "+collDef.getOwner().getName());
          }
      }
docs: Checks that the foreignkey is not modified in an inherited/nested m:n collection descriptor.
  
  @param collDef    The collection descriptor
  @param checkLevel The current check level (this constraint is checked in basic and strict)