in some case, select query is failed after inserting data into the mediaDB 54/92454/1 accepted/tizen/3.0/ivi/20161028.122941 accepted/tizen/3.0/mobile/20161028.122215 accepted/tizen/3.0/tv/20161028.122514 accepted/tizen/3.0/wearable/20161028.122727 accepted/tizen/common/20161017.170358 accepted/tizen/ivi/20161018.021237 accepted/tizen/mobile/20161018.021144 accepted/tizen/tv/20161018.021201 accepted/tizen/wearable/20161018.021218 submit/tizen/20161017.092711 submit/tizen_3.0/20161028.062323 submit/tizen_3.0/20161028.082323 submit/tizen_3.0_common/20161104.104000
authorYong Yeon Kim <yy9875.kim@samsung.com>
Mon, 17 Oct 2016 05:43:57 +0000 (14:43 +0900)
committerYong Yeon Kim <yy9875.kim@samsung.com>
Mon, 17 Oct 2016 05:44:16 +0000 (14:44 +0900)
So, add retrying logic

Change-Id: I68fe9a857beea6f634c6899b6ba9a2ecc69818b0

packaging/capi-content-media-content.spec
src/media_info.c

index bd7145a..7b390d8 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-content-media-content
 Summary:    A Media content library in Tizen Native API
-Version:    0.2.86
+Version:    0.2.87
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index ca7d0b1..39f7435 100755 (executable)
@@ -394,7 +394,9 @@ int _media_info_get_media_info_from_db(const char *path, const char *storage_id,
                _media_info_item_get_detail(stmt, (media_info_h)_media);
        } else {
                media_content_error("There's no media!!");
-               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+               media_content_error("%s", path);
+               media_content_error("%s", storage_id);
+               ret = MEDIA_CONTENT_ERROR_DB_FAILED;
        }
 
        SQLITE3_FINALIZE(stmt);
@@ -3442,6 +3444,7 @@ static int __media_info_destroy(media_info_h media)
 int media_info_insert_to_db_with_data(media_info_h media)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
+       int ret_cnt = 0;
        char repl_path[MAX_QUERY_SIZE] = {0, };
 
        media_info_s *_media = (media_info_s*)media;
@@ -3490,9 +3493,16 @@ int media_info_insert_to_db_with_data(media_info_h media)
        char *media_string_uuid = g_strdup(_media->storage_uuid);
 
        __media_info_destroy(media);
+RETRY:
        ret = _media_info_get_media_info_from_db(media_file_path, media_string_uuid, media);
-       if (ret != MEDIA_CONTENT_ERROR_NONE)
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
                media_content_error("_media_info_get_media_info_from_db fail", ret);
+               if (ret == MEDIA_CONTENT_ERROR_DB_FAILED && ret_cnt < 5) {
+                       ret_cnt++;
+                       media_content_error("RETRY GETTING DATA");
+                       goto RETRY;
+               }
+       }
 
        SAFE_FREE(media_file_path);
        SAFE_FREE(media_string_uuid);