[Bug 252178] No error message when trying to display emails while 'Enable Disconnected Mode' unchecked

Tobias Koenig tokoe at kde.org
Thu Dec 30 12:34:31 GMT 2010


https://bugs.kde.org/show_bug.cgi?id=252178


Tobias Koenig <tokoe at kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




--- Comment #3 from Tobias Koenig <tokoe kde org>  2010-12-30 13:34:30 ---
commit aa74751de1b4466f6779ce9e865b801893d7de5c
branch master
Author: Tobias Koenig <tokoe at kde.org>
Date:   Thu Dec 30 13:34:04 2010 +0100

    Propagate errors from ItemRetriever to FETCH handler

    Errors from the ItemRetriever (e.g. calling requestItemDelivery
    on a resource in offline mode) will be propagated to the FETCH handler
    now, so that the caller of ItemFetchJob can show an error message
    to the user.

    BUG:252178

diff --git a/server/src/handler/fetchhelper.cpp
b/server/src/handler/fetchhelper.cpp
index 88edf74..d66824f 100644
--- a/server/src/handler/fetchhelper.cpp
+++ b/server/src/handler/fetchhelper.cpp
@@ -224,7 +224,9 @@ bool FetchHelper::parseStream( const QByteArray
&responseIdentifier )
     retriever.setScope( mScope );
     retriever.setRetrieveParts( payloadList );
     retriever.setRetrieveFullPayload( mFullPayload );
-    retriever.exec(); // There we go, retrieve the missing parts from the
resource.
+    if ( !retriever.exec() ) { // There we go, retrieve the missing parts from
the resource.
+      throw HandlerException( "Unable to fetch item from backend" );
+    }
   }

   QSqlQuery itemQuery = buildItemQuery();
diff --git a/server/src/storage/itemretriever.cpp
b/server/src/storage/itemretriever.cpp
index 6d5a030..9c84a07 100644
--- a/server/src/storage/itemretriever.cpp
+++ b/server/src/storage/itemretriever.cpp
@@ -169,10 +169,10 @@ QSqlQuery ItemRetriever::buildQuery() const
 }


-void ItemRetriever::exec()
+bool ItemRetriever::exec()
 {
   if ( mParts.isEmpty() && !mFullPayload )
-    return;
+    return true;

   QSqlQuery query = buildQuery();
   ItemRetrievalRequest* lastRequest = 0;
@@ -234,6 +234,7 @@ void ItemRetriever::exec()
       ItemRetrievalManager::instance()->requestItemDelivery( request );
     } catch ( const ItemRetrieverException &e ) {
       akError() << e.type() << ": " << e.what();
+      return false;
     }
   }

@@ -247,6 +248,8 @@ void ItemRetriever::exec()
       retriever.exec();
     }
   }
+
+  return true;
 }

 QString ItemRetriever::driverName()
diff --git a/server/src/storage/itemretriever.h
b/server/src/storage/itemretriever.h
index aeb650b..866d265 100644
--- a/server/src/storage/itemretriever.h
+++ b/server/src/storage/itemretriever.h
@@ -62,7 +62,7 @@ class ItemRetriever
     void setScope( const Scope &scope );
     Scope scope() const;

-    void exec();
+    bool exec();

   private:
     /** Convenience method which returns the database driver name */

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Kdepim-bugs mailing list