javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/MidletLifeCycle.java
branchRCL_3
changeset 24 0fd27995241b
parent 19 04becd199f91
child 25 9ac0a0a7da70
--- a/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/MidletLifeCycle.java	Fri Apr 30 10:40:48 2010 +0300
+++ b/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/MidletLifeCycle.java	Tue May 11 16:07:20 2010 +0300
@@ -80,9 +80,6 @@
  * that will fail if any of the started Java threads dont stop as a result of
  * shut down notifications. That is considered a failure in the shut down phase
  * and the Java Captain will terminate forcefully the process.
- *
- * @author Nokia Corporation
- * @version $Rev$
  */
 final class MidletLifeCycle
 {
@@ -100,8 +97,7 @@
     private static final int RESUMING        = 0x100;
 
     /**
-     * A singleton instance of the life cycle. It is singleton for provoding
-     * easy access to all other classes of the MIDP runtime.
+     * A singleton instance of the life cycle.
      */
     private static MidletLifeCycle       mInstance = new MidletLifeCycle();
 
@@ -251,11 +247,6 @@
         {
             mRuntimeErrDialog.showDialog();
         }
-        if (Log.mOn) Log.logI("Sending close indication to runtime starter.");
-        _closeInd(mNativeRuntimeStarterHandle);
-
-        if (Log.mOn) Log.logI("Sending shutdown notifications to listeners.");
-        ApplicationUtilsImpl.doShutdownImpl();
 
         if (!mStandAlone)
         {
@@ -267,7 +258,14 @@
             mMidpcomms = null;
         }
 
-        if (Log.mOn) Log.logI("Short pause before closing dispatchers.");
+        if (Log.mOn) Log.logI("Sending shutdown notifications to listeners.");
+        ApplicationUtilsImpl.doShutdownImpl();
+
+        if (Log.mOn) Log.logI("Sending close indication to runtime starter.");
+        _closeInd(mNativeRuntimeStarterHandle);
+
+
+        if (Log.mOn) Log.logI("Short pause before closing LegacySupport.");
         try
         {
             Thread.sleep(200);
@@ -276,7 +274,7 @@
         {
         }
 
-        if (Log.mOn) Log.logI("Closing dispatchers.");
+        if (Log.mOn) Log.logI("Closing LegacySupport.");
         LegacySupport.close();
 
         // Setting state to closed.
@@ -602,7 +600,7 @@
     /**
      * Handles the start request task. Allowed to be called only from
      * startStateMachine() method. The only intention of this method is
-     * to diminish the switch case clause in the diminish startStateMachine()
+     * to diminish the switch case clause in the startStateMachine()
      * method.
      * @param subTask The sub task provided by the task setter.
      */
@@ -610,8 +608,8 @@
     {
         if (Log.mOn) Log.logI("MidletLifeCycle.handleStartRequest(), subTask: "
                                   + subTask);
-        if (mState == POST_INIT_DONE || (mState == PRE_INIT_DONE &&
-                                         subTask == LifeCycleTask.PRE_WARM_START))
+        if ((mState == POST_INIT_DONE && subTask != LifeCycleTask.PRE_WARM_START) || 
+            (mState == PRE_INIT_DONE && subTask == LifeCycleTask.PRE_WARM_START))
         {
             if (subTask == LifeCycleTask.NORMAL_START)
             {
@@ -781,6 +779,10 @@
             // Check if there are add-on JSRs.
             ExtensionUtil.handleExtensions();
         }
+        else
+        {
+            ApplicationUtilsImpl.setStandAloneMode();
+        }
 
         mTaskQueue = new TaskQueue();
 
@@ -919,10 +921,6 @@
         _setUids(mMidletUid.toString(),
                  ApplicationInfoImpl.getMidletInfo().getSuiteUid().toString(),
                  mNativeRuntimeStarterHandle);
-        // The Jvm doesn't know about MIDlet class path - need to set it.
-        String classPath = ApplicationInfoImpl.getMidletInfo().getClassPath();
-        if (Log.mOn) Log.logI("  Adding to classpath: "+classPath);
-        JvmInternal.appendToClassPath(classPath);
     }
 
     private void doPostInit()
@@ -946,6 +944,11 @@
             // API works ok, the setMidletInfo must be called before
             // starting the UI.
             CoreUi.createUi(mMidletUid, mBackGroundStart);
+
+            // The Jvm doesn't know about MIDlet class path - need to set it.
+            String classPath = ApplicationInfoImpl.getMidletInfo().getClassPath();
+            if (Log.mOn) Log.logI("  Adding to classpath: "+classPath);
+            JvmInternal.appendToClassPath(classPath);
         }
         if (!mStandAlone)
         {