code: public void rollback() 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)
                 {
                    // As the files could be registered to the file cleaner 
                    // to be removed in case of a move that failed
                    // or in case of a WriteValue.rollback() that could not
                    // remove the file, we need to unregister the files that
                    // will be restored thanks to the backup file
                    cleaner.removeFile(files[i]);
                    if (f.exists()) {
                      File tmpFile = files[i];
                      if (files[i].getName().contains(".")) {
                        LOG.warn("file name {} contains '.' ", files[i].getAbsolutePath());
                        tmpFile = new File(files[i].getParent(), files[i].getName().substring(0, files[i].getName().indexOf(".")));
                      }
                      move(f, tmpFile);
                    }
                 }
              }
           }
           finally
           {
              for (int i = 0,length = locks.length; i < length; i++)
              {
                 ValueFileLock fl = locks[i];
                 fl.unlock();
              }
           }
     }
docs: {@inheritDoc}