summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2012-08-08 14:58:54 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-08 14:58:54 -0700
commit1650f080bc6e1e5cd78bca9f1c732edd2a5950b2 (patch)
tree091b8dcc939ef18a2703b0e3a2a7af3bf59a70b7
parentb548bdcc34592bba628cf99c89bd156b9b9509f6 (diff)
parent558abb1db945f2ad8da7d89c06f569798a8eba87 (diff)
downloadpackages_apps_Stk-1650f080bc6e1e5cd78bca9f1c732edd2a5950b2.zip
packages_apps_Stk-1650f080bc6e1e5cd78bca9f1c732edd2a5950b2.tar.gz
packages_apps_Stk-1650f080bc6e1e5cd78bca9f1c732edd2a5950b2.tar.bz2
am 558abb1d: am af0dd9f0: Merge "Stk: Fix crash due to race condition"
* commit '558abb1db945f2ad8da7d89c06f569798a8eba87': Stk: Fix crash due to race condition
-rw-r--r--src/com/android/stk/StkAppService.java22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/com/android/stk/StkAppService.java b/src/com/android/stk/StkAppService.java
index 1007a4a..9dcd25b 100644
--- a/src/com/android/stk/StkAppService.java
+++ b/src/com/android/stk/StkAppService.java
@@ -144,20 +144,11 @@ public class StkAppService extends Service implements Runnable {
@Override
public void onCreate() {
// Initialize members
+ // This can return null if StkService is not yet instantiated, but it's ok
+ // If this is null we will do getInstance before we need to use this
mStkService = com.android.internal.telephony.cat.CatService
.getInstance();
- // NOTE mStkService is a singleton and continues to exist even if the GSMPhone is disposed
- // after the radio technology change from GSM to CDMA so the PHONE_TYPE_CDMA check is
- // needed. In case of switching back from CDMA to GSM the GSMPhone constructor updates
- // the instance. (TODO: test).
- if ((mStkService == null)
- && (TelephonyManager.getDefault().getPhoneType()
- != TelephonyManager.PHONE_TYPE_CDMA)) {
- CatLog.d(this, " Unable to get Service handle");
- return;
- }
-
mCmdsQ = new LinkedList<DelayedCmd>();
Thread serviceThread = new Thread(null, this, "Stk App Service");
serviceThread.start();
@@ -488,6 +479,15 @@ public class StkAppService extends Service implements Runnable {
if (mCurrentCmd == null) {
return;
}
+ if (mStkService == null) {
+ mStkService = com.android.internal.telephony.cat.CatService.getInstance();
+ if (mStkService == null) {
+ // This should never happen (we should be responding only to a message
+ // that arrived from StkService). It has to exist by this time
+ throw new RuntimeException("mStkService is null when we need to send response");
+ }
+ }
+
CatResponseMessage resMsg = new CatResponseMessage(mCurrentCmd);
// set result code