code: public void twoPhaseCommit() throws IOException
     {
        if (locks != null)
           try
           {
              if (bckFiles == null)
                 return;
              for (int i = 0,length = bckFiles.length; i < length; i++)
              {
                 File f = bckFiles[i];
                 if (f != null && !f.delete())
                    // Possible place of error: FileNotFoundException when we delete/update existing
                    // Value and then add/update again.
                    // After the time the Cleaner will delete the file which is mapped to the Value.
                    // Don't use cleaner! Care about transaction-style files isolation per-user etc. 
                    cleaner.addFile(f);
              }
           }
           finally
           {
              for (int i = 0,length = locks.length; i < length; i++)
              {
                 ValueFileLock fl = locks[i];
                 fl.unlock();
              }
           }
     }
docs: {@inheritDoc}