[SecureElement] Updated try/catch code to match exceptions thrown from SE library.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 23 Feb 2015 11:12:33 +0000 (12:12 +0100)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 23 Feb 2015 13:57:09 +0000 (22:57 +0900)
Try/catch cannot be removed, as exceptions are generated in library used
by this module.

Change-Id: I5a1ce4ce18d5422587a80ac6fa7f5835b306f4d1

src/secureelement/secureelement_instance.cc
src/secureelement/secureelement_reader.cc

index 7dd9d46dcedea017158080e2c15b59ebecc33bad..3c9456ae2c17a40c034215c9638b06b99a5fa6db 100644 (file)
@@ -8,7 +8,6 @@
 #include <Reader.h>
 #include "common/picojson.h"
 #include "common/logger.h"
-#include "common/platform_exception.h"
 #include "common/task-queue.h"
 
 #include "secureelement_reader.h"
@@ -142,9 +141,21 @@ void SecureElementInstance::OpenSession(
             SEReader seReader(reader_ptr);
             picojson::value result = seReader.openSession();
             ReportSuccess(result, response->get<picojson::object>());
-        } catch (const PlatformException& err) {
-            LoggerD("Error occurred while opening session!");
-            ReportError(err, response->get<picojson::object>());
+        } catch (const ErrorIO& err) {
+            LoggerD("Library reported ErrorIO!");
+            ReportError(PlatformResult(ErrorCode::IO_ERR), &response->get<picojson::object>());
+        } catch (const ErrorIllegalState& err) {
+            LoggerD("Library reported ErrorIllegalState!");
+            ReportError(PlatformResult(ErrorCode::INVALID_STATE_ERR), &response->get<picojson::object>());
+        } catch (const ErrorIllegalParameter& err) {
+            LoggerD("Library reported ErrorIllegalParameter!");
+            ReportError(PlatformResult(ErrorCode::INVALID_VALUES_ERR), &response->get<picojson::object>());
+        } catch (const ErrorSecurity& err) {
+            LoggerD("Library reported ErrorSecurity!");
+            ReportError(PlatformResult(ErrorCode::SECURITY_ERR), &response->get<picojson::object>());
+        } catch (const ExceptionBase& err) {
+            LoggerD("Library reported ExceptionBase!");
+            ReportError(PlatformResult(ErrorCode::UNKNOWN_ERR), &response->get<picojson::object>());
         }
     };
 
@@ -176,8 +187,21 @@ void SecureElementInstance::OpenBasicChannel( const picojson::value& args, picoj
             SESession seSession(session_ptr);
             picojson::value result = seSession.openBasicChannel(v_aid);
             ReportSuccess(result, response->get<picojson::object>());
-        } catch (const PlatformException& e) {
-            ReportError(e, response->get<picojson::object>());
+        } catch (const ErrorIO& err) {
+            LoggerD("Library reported ErrorIO!");
+            ReportError(PlatformResult(ErrorCode::IO_ERR), &response->get<picojson::object>());
+        } catch (const ErrorIllegalState& err) {
+            LoggerD("Library reported ErrorIllegalState!");
+            ReportError(PlatformResult(ErrorCode::INVALID_STATE_ERR), &response->get<picojson::object>());
+        } catch (const ErrorIllegalParameter& err) {
+            LoggerD("Library reported ErrorIllegalParameter!");
+            ReportError(PlatformResult(ErrorCode::INVALID_VALUES_ERR), &response->get<picojson::object>());
+        } catch (const ErrorSecurity& err) {
+            LoggerD("Library reported ErrorSecurity!");
+            ReportError(PlatformResult(ErrorCode::SECURITY_ERR), &response->get<picojson::object>());
+        } catch (const ExceptionBase& err) {
+            LoggerD("Library reported ExceptionBase!");
+            ReportError(PlatformResult(ErrorCode::UNKNOWN_ERR), &response->get<picojson::object>());
         }
     };
 
@@ -203,10 +227,23 @@ void SecureElementInstance::OpenLogicalChannel( const picojson::value& args, pic
         LoggerD("Opening basic channel");
         try {
             SESession seSession(session_ptr);
-            picojson::value result = seSession.openBasicChannel(v_aid);
+            picojson::value result = seSession.openLogicalChannel(v_aid);
             ReportSuccess(result, response->get<picojson::object>());
-        } catch (const PlatformException& e) {
-            ReportError(e, response->get<picojson::object>());
+        } catch (const ErrorIO& err) {
+            LoggerD("Library reported ErrorIO!");
+            ReportError(PlatformResult(ErrorCode::IO_ERR), &response->get<picojson::object>());
+        } catch (const ErrorIllegalState& err) {
+            LoggerD("Library reported ErrorIllegalState!");
+            ReportError(PlatformResult(ErrorCode::INVALID_STATE_ERR), &response->get<picojson::object>());
+        } catch (const ErrorIllegalParameter& err) {
+            LoggerD("Library reported ErrorIllegalParameter!");
+            ReportError(PlatformResult(ErrorCode::INVALID_VALUES_ERR), &response->get<picojson::object>());
+        } catch (const ErrorSecurity& err) {
+            LoggerD("Library reported ErrorSecurity!");
+            ReportError(PlatformResult(ErrorCode::SECURITY_ERR), &response->get<picojson::object>());
+        } catch (const ExceptionBase& err) {
+            LoggerD("Library reported ExceptionBase!");
+            ReportError(PlatformResult(ErrorCode::UNKNOWN_ERR), &response->get<picojson::object>());
         }
     };
 
@@ -280,8 +317,21 @@ void SecureElementInstance::Transmit( const picojson::value& args, picojson::obj
                 arr.push_back(picojson::value(static_cast<double>(transmit_response[i])));
             }
             ReportSuccess( result, response->get<picojson::object>());
-        } catch (const PlatformException& e) {
-            ReportError( e, response->get<picojson::object>());
+        } catch (const ErrorIO& err) {
+            LoggerD("Library reported ErrorIO!");
+            ReportError(PlatformResult(ErrorCode::IO_ERR), &response->get<picojson::object>());
+        } catch (const ErrorIllegalState& err) {
+            LoggerD("Library reported ErrorIllegalState!");
+            ReportError(PlatformResult(ErrorCode::INVALID_STATE_ERR), &response->get<picojson::object>());
+        } catch (const ErrorIllegalParameter& err) {
+            LoggerD("Library reported ErrorIllegalParameter!");
+            ReportError(PlatformResult(ErrorCode::INVALID_VALUES_ERR), &response->get<picojson::object>());
+        } catch (const ErrorSecurity& err) {
+            LoggerD("Library reported ErrorSecurity!");
+            ReportError(PlatformResult(ErrorCode::SECURITY_ERR), &response->get<picojson::object>());
+        } catch (const ExceptionBase& err) {
+            LoggerD("Library reported ExceptionBase!");
+            ReportError(PlatformResult(ErrorCode::UNKNOWN_ERR), &response->get<picojson::object>());
         }
     };
 
index 92a49868b60273d9cad2aab2e4a5842a4ab487f2..cbcf745724f39fef5221786bdee56a5e552e63ef 100644 (file)
@@ -8,10 +8,8 @@
 #include <Reader.h>
 #include "common/picojson.h"
 #include "common/logger.h"
-#include "common/platform_exception.h"
 
 using namespace smartcard_service_api;
-using namespace common;
 using namespace std;
 
 namespace extension {