Commit af0dd9f0 authored by Wink Saville's avatar Wink Saville Committed by android code review
Browse files

Merge "Stk: Fix crash due to race condition"

parents 71013cbd d8e2ecdc
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment