javamanager/javainstaller/javasifplugin/src/resultsserver.cpp
changeset 35 85266cc22c7f
parent 21 2a9601315dfc
child 47 f40128debb5d
child 49 35baca0e7a2e
--- a/javamanager/javainstaller/javasifplugin/src/resultsserver.cpp	Thu May 27 12:49:31 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/src/resultsserver.cpp	Fri Jun 11 13:33:44 2010 +0300
@@ -19,6 +19,7 @@
 
 #include <iostream>
 #include <unistd.h>
+#include <usiferror.h>
 
 #include "comms.h"
 #include "javasymbianoslayer.h"
@@ -44,6 +45,33 @@
 
 int ResultsServer::start()
 {
+    // Write reasonable error codes to iResults that can be used if
+    // Java Installer never returns InstallerResultMessage.
+    // If InstallerResultMessage is received the values will be overwritten.
+    TRAPD(err, iResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+            "ResultsServer::start iResults.AddIntL ErrCategory err %d", err);
+    }
+
+    TRAP(err, iResults.AddIntL(KSifOutParam_ErrCode, KErrUnknown));
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+            "ResultsServer::start iResults.AddIntL ErrCode err %d", err);
+    }
+
+    TRAP(err, iResults.AddIntL(KSifOutParam_ExtendedErrCode, 0));
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+            "ResultsServer::start iResults.AddIntL ExtendedErrCode err %d", err);
+    }
+
+    // TODO: return also localized error message from usif
+    // common localization file after the localized strings are available
+
     iRunning = 1;
     iComms.registerDefaultListener(this);
     return iComms.start(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
@@ -118,14 +146,6 @@
             if (KErrNone != result)
             {
                 // return common error information
-                TRAP(err, iResults.AddIntL(KSifOutParam_ExtendedErrCode, result));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaInstaller,
-                        "ResultsServer::processMessage iResults.AddIntL ExtendedErrCode err %d",
-                        err);
-                }
-
                 TRAP(err, iResults.AddIntL(KSifOutParam_ErrCode, result));
                 if (KErrNone != err)
                 {
@@ -197,7 +217,24 @@
             }
             else
             {
-                // operation succeeded
+                // Operation succeeded
+
+                // Overwrite (reset) the default error values set for the case where no
+                // InstallerResultMessage is never received
+                TRAPD(err, iResults.AddIntL(KSifOutParam_ErrCategory, 0));
+                if (KErrNone != err)
+                {
+                    ELOG1(EJavaInstaller,
+                        "ResultsServer::processMessage iResults.AddIntL ErrCategory err %d", err);
+                }
+
+                TRAP(err, iResults.AddIntL(KSifOutParam_ErrCode, 0));
+                if (KErrNone != err)
+                {
+                    ELOG1(EJavaInstaller,
+                        "ResultsServer::processMessage iResults.AddIntL ErrCode err %d", err);
+                }
+
 
                 if (INSTALL_OPERATION == operation)
                 {