private boolean processTransaction(Transaction transaction) throws IOException {
synchronized (mProcessing) {
    for (    Transaction t : mPending) {
      if (t.isEquivalent(transaction)) {
        if (LOCAL_LOGV)         Log.v(TAG,"Transaction already pending: " + transaction.getServiceId());
        return true;
      }
    }
    for (    Transaction t : mProcessing) {
      if (t.isEquivalent(transaction)) {
        if (LOCAL_LOGV)         Log.v(TAG,"Duplicated transaction: " + transaction.getServiceId());
        return true;
      }
    }
    if (LOCAL_LOGV)     Log.v(TAG,"processTransaction: call beginMmsConnectivity...");
    int connectivityResult=beginMmsConnectivity();
    if (connectivityResult == PhoneConstants.APN_REQUEST_STARTED) {
      mPending.add(transaction);
      if (LOCAL_LOGV)       Log.v(TAG,"processTransaction: connResult=APN_REQUEST_STARTED, " + "defer transaction pending MMS connectivity");
      return true;
    }
    if (LOCAL_LOGV)     Log.v(TAG,"Adding transaction to 'mProcessing' list: " + transaction);
    mProcessing.add(transaction);
  }
  sendMessageDelayed(obtainMessage(EVENT_CONTINUE_MMS_CONNECTIVITY),APN_EXTENSION_WAIT);
  if (LOCAL_LOGV)   Log.v(TAG,"processTransaction: starting transaction " + transaction);
  transaction.attach(TransactionService.this);
  transaction.process();
  return true;
}

private boolean processTransaction ( Transaction transaction ) throws IOException { synchronized ( mProcessing ) { for ( Transaction t : mPending ) { if ( t . isEquivalent ( transaction ) ) { if ( LOCAL_LOGV ) Log . v ( TAG , "Transaction already pending: " + transaction . getServiceId ( ) ) ; return true ; } } for ( Transaction t : mProcessing ) { if ( t . isEquivalent ( transaction ) ) { if ( LOCAL_LOGV ) Log . v ( TAG , "Duplicated transaction: " + transaction . getServiceId ( ) ) ; return true ; } } if ( LOCAL_LOGV ) Log . v ( TAG , "processTransaction: call beginMmsConnectivity..." ) ; int connectivityResult = beginMmsConnectivity ( ) ; if ( connectivityResult == PhoneConstants . APN_REQUEST_STARTED ) { mPending . add ( transaction ) ; if ( LOCAL_LOGV ) Log . v ( TAG , "processTransaction: connResult=APN_REQUEST_STARTED, " + "defer transaction pending MMS connectivity" ) ; return true ; } if ( LOCAL_LOGV ) Log . v ( TAG , "Adding transaction to 'mProcessing' list: " + transaction ) ; mProcessing . add ( transaction ) ; } sendMessageDelayed ( obtainMessage ( EVENT_CONTINUE_MMS_CONNECTIVITY ) , APN_EXTENSION_WAIT ) ; if ( LOCAL_LOGV ) Log . v ( TAG , "processTransaction: starting transaction " + transaction ) ; transaction . attach ( TransactionService . this ) ; transaction . process ( ) ; return true ; }
internal method to begin processing a transaction .
