Organization closure, or "org closure" for short, is an auxiliary data structure residing in midPoint repository. It maintains information on who belongs to which organizational unit, across one or multiple is-parent-of links. (Mathematicians would call it "transitive closure of organizational units graph", hence the "closure" in its name.) It is physically stored in the M_ORG_CLOSURE database table.
In order to increase the speed of carrying out org-related operations in the repository, we have applied an advanced algorithm for maintaining the org closure. It has been introduced in midPoint v3.0.1devel-554-gee3dd98. For those upgrading to this or later version of midPoint, here are some useful notes:
If you'd ever need to downgrade, you have to drop the "new" closure table and either manually restore its original structure, or let midPoint do it (if hibernateHbm2ddl=update). In either case, however, the table will be empty, and there is no automatic procedure that would fill it in. One possible solution then is to export all organizations and reimport them. The closure will be recomputed during that process.
TODO some notes on configuring closure-related actions at startup (checking, rebuilding)
TODO about manual check/recomputation of the closure (About->xxx menu item).