[content] Detour DateTime parsing exception
authorSeokpil Park <seokpil.park@samsung.com>
Fri, 16 Aug 2013 08:41:16 +0000 (17:41 +0900)
committerSeokpil Park <seokpil.park@samsung.com>
Fri, 16 Aug 2013 08:41:19 +0000 (17:41 +0900)
Change-Id: I9f08bd4509d40c15b179f1af194f79097aee2a2f
Signed-off-by: Seokpil Park <seokpil.park@samsung.com>
src/FCnt_ContentManagerImpl.cpp
src/FCnt_ContentUtility.cpp

index 7e79bf5..766e317 100644 (file)
@@ -1651,13 +1651,25 @@ _ContentManagerImpl::MakeImageContentInfo(const media_info_h pMediaInfo, void* p
                String dateTaken(pStrValue.get());
                String newDateTaken(L"");
 
-               String delim(L": ");
+               // detour the unexpected datetaken format
+               String tempDelim(L"+-Z");
                String token;
 
+               StringTokenizer tempStrTok(dateTaken, tempDelim);
+
+               r = tempStrTok.GetNextToken(token);
+               SysTryReturnResult(NID_CNT, !IsFailed(r), E_INVALID_ARG, "Failed to perform GetNextToken operation.");
+
+               dateTaken = token;
+
+               String delim(L": ");
                String year(L"");
 
                StringTokenizer strTok(dateTaken, delim);
 
+               r = strTok.SetDelimiters(delim);
+               SysTryReturnResult(NID_CNT, !IsFailed(r), E_INVALID_ARG, "Failed to perform SetDelimiters operation.");
+
                r = strTok.GetNextToken(token);
                SysTryReturnResult(NID_CNT, !IsFailed(r), E_INVALID_ARG, "Failed to perform GetNextToken operation.");
 
index 68d3135..ffb706b 100644 (file)
@@ -514,13 +514,25 @@ _ContentUtility::FillImageContentData(media_info_h mediaHandle, _ImageContentInf
                String dateTaken(pStrValue.get());
                String newDateTaken(L"");
 
-               String delim(L": ");
+               // detour the unexpected datetaken format
+               String tempDelim(L"+-Z");
                String token;
 
+               StringTokenizer tempStrTok(dateTaken, tempDelim);
+
+               r = tempStrTok.GetNextToken(token);
+               SysTryReturnResult(NID_CNT, !IsFailed(r), E_INVALID_ARG, "Failed to perform GetNextToken operation.");
+
+               dateTaken = token;
+
+               String delim(L": ");
                String year(L"");
 
                StringTokenizer strTok(dateTaken, delim);
 
+               r = strTok.SetDelimiters(delim);
+               SysTryReturnResult(NID_CNT, !IsFailed(r), E_INVALID_ARG, "Failed to perform SetDelimiters operation.");
+
                r = strTok.GetNextToken(token);
                SysTryReturnResult(NID_CNT, !IsFailed(r), E_INVALID_ARG, "Failed to perform GetNextToken operation.");