]> gerrit.simantics Code Review - simantics/platform.git/commit
Improved Acorn database rollback logic. 61/461/4
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Tue, 25 Apr 2017 10:13:45 +0000 (13:13 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Wed, 26 Apr 2017 18:52:46 +0000 (21:52 +0300)
commit20dfd0ba5e518a3706cd749c645a0a79480ea36f
tree61b42eff4ad57d1b4d6b4ba35ad94e418f612cbf
parent1c897891cc1509bb6b5be8dc1202de0dce3d3172
Improved Acorn database rollback logic.

MainState will no longer destroy the entire database if the user removes
directories but forgets to remove the main.state file. The information
stored in main.state is now regarded as cached information only and if
it seems invalid or cannot be read, the same normal rollback logic will
be performed every time.

Another enhancement is that rollback will now automatically store the
revisions deleted by the rollback procedure in timestamped
<workspace>/db/recovery/yyyy-M-d_HH-mm-ss/ folders for later inspection
and debugging. Previously the code just deleted all the extra revisions.
Manually removing the recovery-folder is always a safe operation to
perform.

Also fixed a bug in databoard Files class readFile methods that take
a File as argument. Previously all the functions constructed a
BinaryFile using the default mode which is "rw". This unintentionally
made the readFile methods create an empty file if the file did not
exist. All such methods have been changed to use mode "r".

refs #7124

Change-Id: I3ac04d2e33151b33f4982cf7a2edce7ddb896e11
bundles/org.simantics.acorn/src/org/simantics/acorn/ClusterManager.java
bundles/org.simantics.acorn/src/org/simantics/acorn/MainState.java
bundles/org.simantics.databoard/src/org/simantics/databoard/Files.java