This version fixes a very serious bug. The bug can result in all transactions done within a session of c9 to be lost.
Cause: system errors in c9, such as insufficient memory error while doing massive workloads like importing parts/fiche images, can put c9 in such a state that all operations done afterwards are not correctly saved. Normally, when confronted with such errors, users will shutdown the system and retry. But if you continue to try and use c9 after such an error, there is a chance, based on the type of system error and when it occurred, that none of the work done from that point onwards will be saved.
Further, c9 has some tests for this situation to check and warn user that this has happened. But they are only implemented in point of sale screen. So if you have system crash, never use point of sale on that c9 session, and do other things, like sell units, you will never notice.
The conditions required to make this bug occur are exceedingly rare, but the severity of the issue deserves it's own version of c9 to deal with it.
Fix introduced:
- Check integrity of c9 database everytime a new operation is started. (Only works in new UI mode, old school user interface does not have this check. We will be removing old school soon)
- Also check integrity at a couple of key points. Start unit sale, select job, perform some sort of modification on a job.
- In event of integrity check failure
- Tweak recovery option to work a little more smoothly.
- Force c9/Java to shutdown