Call set_store on creds retrieved from cache.
Reviewed in https://codereview.appspot.com/12534043/.
Fixes bug #292.
diff --git a/oauth2client/appengine.py b/oauth2client/appengine.py
index 2234cf8..e055216 100644
--- a/oauth2client/appengine.py
+++ b/oauth2client/appengine.py
@@ -440,20 +440,20 @@
     Returns:
       oauth2client.Credentials
     """
+    credentials = None
     if self._cache:
       json = self._cache.get(self._key_name)
       if json:
-        return Credentials.new_from_json(json)
-
-    credentials = None
-    entity = self._get_entity()
-    if entity is not None:
-      credentials = getattr(entity, self._property_name)
-      if credentials and hasattr(credentials, 'set_store'):
-        credentials.set_store(self)
+        credentials = Credentials.new_from_json(json)
+    if credentials is None:
+      entity = self._get_entity()
+      if entity is not None:
+        credentials = getattr(entity, self._property_name)
         if self._cache:
           self._cache.set(self._key_name, credentials.to_json())
 
+    if credentials and hasattr(credentials, 'set_store'):
+      credentials.set_store(self)
     return credentials
 
   def locked_put(self, credentials):