Documented this in the DBEditObject subclassing guide, as well as the javadocs for those methods. It was very, very easy to not do this, and so leave the client's GanymedeSession with a registered wizard blocking further activities. This is an incompatible change in the GanymediatorWizard class that will break existing wizard-using custom code, but fixing this now will make wizard use far more reliable, and it would only be harder to fix this later. For those who are interested, the GanymediatorWizard javadoc header now has some hopefully usable documentation on how to do this. This change is entirely for the purpose of making the server more friendly to customizers, and should not have any significant effect on normal server operations.
Wizards can now request a new password from the client properly.
This meant that if the server was killed while writing out the database, there would be an incomplete ganymede.db file in place, which would require the admin to manually recover from the ganymede.db.bak file. Things would always be recoverable, but it wasn't an automatic process. Now, the ganymede.db file is not renamed until the server has completed dumping out its new dump, which is called ganymede.db.new during the dump. This change does slightly increase the amount of disk space needed during operations, as the system needs to have enough disk space for three versions of ganymede.db at a time during a database dump. The Ganymede server in some cases could erroneously re-use an Invid.