[Libreoffice-commits] online.git: common/Log.hpp wsd/DocumentBroker.cpp wsd/Storage.cpp

Pranav Kant pranavk at collabora.co.uk
Fri Jun 16 14:20:58 UTC 2017


 common/Log.hpp         |   14 ++++++++++++++
 wsd/DocumentBroker.cpp |   18 +++++++++---------
 wsd/Storage.cpp        |   10 +++++++---
 3 files changed, 30 insertions(+), 12 deletions(-)

New commits:
commit db13014e00358303f577518c96e29e23e544c1a8
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Sat Jun 10 20:15:00 2017 +0530

    Update modifiedTime for local files unconditionally
    
    Also teach logger to print timestamp object.
    
    Change-Id: Ia13836814c195cef92f5dafd8245c9958600876d

diff --git a/common/Log.hpp b/common/Log.hpp
index 21de30f6..0be4983f 100644
--- a/common/Log.hpp
+++ b/common/Log.hpp
@@ -17,6 +17,9 @@
 #include <sstream>
 #include <string>
 
+#include <Poco/DateTime.h>
+#include <Poco/DateTimeFormat.h>
+#include <Poco/DateTimeFormatter.h>
 #include <Poco/Logger.h>
 
 namespace Log
@@ -170,6 +173,17 @@ namespace Log
         return lhs;
     }
 
+    inline StreamLogger& operator<<(StreamLogger& lhs, const Poco::Timestamp& rhs)
+    {
+        if (lhs.enabled())
+        {
+            lhs._stream <<  Poco::DateTimeFormatter::format(Poco::DateTime(rhs),
+                                                            Poco::DateTimeFormat::ISO8601_FRAC_FORMAT);
+        }
+
+        return lhs;
+    }
+
     inline void operator<<(StreamLogger& lhs, const _end_marker&)
     {
         (void)end;
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index d4ac586a..fd04998a 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -510,21 +510,21 @@ bool DocumentBroker::load(const std::shared_ptr<ClientSession>& session, const s
     if (firstInstance)
     {
         _documentLastModifiedTime = fileInfo._modifiedTime;
-        LOG_DBG("Document timestamp: " << Poco::DateTimeFormatter::format(Poco::DateTime(_documentLastModifiedTime),
-                                                                          Poco::DateTimeFormat::ISO8601_FORMAT));
+        Log::debug() << "Document timestamp: " << _documentLastModifiedTime << Log::end;
     }
     else
     {
         // Check if document has been modified by some external action
-        LOG_TRC("Document modified time: " <<
-                Poco::DateTimeFormatter::format(Poco::DateTime(fileInfo._modifiedTime),
-                                                Poco::DateTimeFormat::ISO8601_FORMAT));
+        Log::trace() << "Document modified time: " << fileInfo._modifiedTime << Log::end;
         static const Poco::Timestamp Zero(Poco::Timestamp::fromEpochTime(0));
         if (_documentLastModifiedTime != Zero &&
             fileInfo._modifiedTime != Zero &&
             _documentLastModifiedTime != fileInfo._modifiedTime)
         {
-            LOG_WRN("Document [" << _docKey << "] has been modified behind our back. Informing all clients.");
+            Log::trace() << "Document " << _docKey << "] has been modified behind our back. Informing all clients."
+                         << "Expected: " << _documentLastModifiedTime
+                         << "Actual: " << fileInfo._modifiedTime << Log::end;
+
             _documentChangedInStorage = true;
             const std::string errorMsg = "error: cmd=storage kind=documentconflict";
             session->sendTextFrame(errorMsg);
@@ -658,9 +658,9 @@ bool DocumentBroker::saveToStorageInternal(const std::string& sessionId,
         // After a successful save, we are sure that document in the storage is same as ours
         _documentChangedInStorage = false;
 
-        LOG_DBG("Saved docKey [" << _docKey << "] to URI [" << uri << "] and updated tile cache. Document modified timestamp: " <<
-                Poco::DateTimeFormatter::format(Poco::DateTime(_documentLastModifiedTime),
-                                                               Poco::DateTimeFormat::ISO8601_FORMAT));
+        Log::debug() << "Saved docKey [" << _docKey << "] to URI [" << uri
+                     << "] and updated tile cache. Document modified timestamp: "
+                     << _documentLastModifiedTime << Log::end;
         return true;
     }
     else if (storageSaveResult == StorageBase::SaveResult::DISKFULL)
diff --git a/wsd/Storage.cpp b/wsd/Storage.cpp
index af31674e..bc205446 100644
--- a/wsd/Storage.cpp
+++ b/wsd/Storage.cpp
@@ -286,16 +286,20 @@ StorageBase::SaveResult LocalStorage::saveLocalFileToStorage(const std::string&
 {
     try
     {
+        LOG_TRC("Saving local file to local file storage " << _isCopy << " for " << _jailedFilePath);
         // Copy the file back.
         if (_isCopy && Poco::File(_jailedFilePath).exists())
         {
             LOG_INF("Copying " << _jailedFilePath << " to " << _uri.getPath());
             Poco::File(_jailedFilePath).copyTo(_uri.getPath());
 
-            // update its fileinfo object. This is used later to check if someone else changed the
-            // document while we are/were editing it
-            _fileInfo._modifiedTime = Poco::File(_uri.getPath()).getLastModified();
+
         }
+
+        // update its fileinfo object. This is used later to check if someone else changed the
+        // document while we are/were editing it
+        _fileInfo._modifiedTime = Poco::File(_uri.getPath()).getLastModified();
+        Log::trace() << "New FileInfo modified time in storage " << _fileInfo._modifiedTime << Log::end;
     }
     catch (const Poco::Exception& exc)
     {


More information about the Libreoffice-commits mailing list