3473 case LAUNCH_TIMEOUT_MSG: {
3474 if (mService.mDidDexOpt) {
3475 mService.mDidDexOpt = false;
3476 mHandler.sendEmptyMessageDelayed(LAUNCH_TIMEOUT_MSG, LAUNCH_TIMEOUT);
3477 return;
3478 }
3479 synchronized (mService) {
3480 if (mLaunchingActivity.isHeld()) {
3481 Slog.w(TAG, "Launch timeout has expired, giving up wake lock!");
3482 if (VALIDATE_WAKE_LOCK_CALLER
3483 && Binder.getCallingUid() != Process.myUid()) {
3484 throw new IllegalStateException("Calling must be system uid");
3485 }
3486 mLaunchingActivity.release();
3487 }
3488 }