Merge "Add/fix null-check on ringtoneSupplier." into udc-dev
diff --git a/src/com/android/server/telecom/CallStreamingController.java b/src/com/android/server/telecom/CallStreamingController.java
index 54ea385..31b2235 100644
--- a/src/com/android/server/telecom/CallStreamingController.java
+++ b/src/com/android/server/telecom/CallStreamingController.java
@@ -54,10 +54,12 @@
private CallStreamingServiceConnection mConnection;
private boolean mIsStreaming;
private final Object mLock;
+ private TelecomSystem.SyncRoot mTelecomLock;
- public CallStreamingController(Context context) {
+ public CallStreamingController(Context context, TelecomSystem.SyncRoot telecomLock) {
mLock = new Object();
mContext = context;
+ mTelecomLock = telecomLock;
}
private void onConnectedInternal(Call call, TransactionalServiceWrapper wrapper,
@@ -101,6 +103,7 @@
private final CallsManager mCallsManager;
public QueryCallStreamingTransaction(CallsManager callsManager) {
+ super(callsManager.getLock());
mCallsManager = callsManager;
}
@@ -128,7 +131,9 @@
private Call mCall;
private boolean mEnterInterception;
- public AudioInterceptionTransaction(Call call, boolean enterInterception) {
+ public AudioInterceptionTransaction(Call call, boolean enterInterception,
+ TelecomSystem.SyncRoot lock) {
+ super(lock);
mCall = call;
mEnterInterception = enterInterception;
}
@@ -164,6 +169,7 @@
public StreamingServiceTransaction(Context context, TransactionalServiceWrapper wrapper,
Call call) {
+ super(mTelecomLock);
mWrapper = wrapper;
mCall = call;
mUserHandle = mCall.getInitiatingUser();
@@ -240,6 +246,7 @@
private static final String TAG = "UnbindStreamingServiceTransaction";
public UnbindStreamingServiceTransaction() {
+ super(mTelecomLock);
}
@SuppressLint("LongLogTag")
@@ -305,6 +312,7 @@
@StreamingCall.StreamingCallState int mState;
public CallStreamingStateChangeTransaction(@StreamingCall.StreamingCallState int state) {
+ super(mTelecomLock);
mState = state;
}
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 591df7b..f36ba1b 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -136,6 +136,7 @@
import com.android.server.telecom.ui.DisconnectedCallNotifier;
import com.android.server.telecom.ui.IncomingCallNotifier;
import com.android.server.telecom.ui.ToastFactory;
+import com.android.server.telecom.voip.TransactionManager;
import java.util.ArrayList;
import java.util.Arrays;
@@ -441,6 +442,7 @@
private final CallAnomalyWatchdog mCallAnomalyWatchdog;
private final CallStreamingController mCallStreamingController;
private final BlockedNumbersAdapter mBlockedNumbersAdapter;
+ private final TransactionManager mTransactionManager;
private final ConnectionServiceFocusManager.CallsManagerRequester mRequester =
new ConnectionServiceFocusManager.CallsManagerRequester() {
@@ -549,7 +551,8 @@
CallAnomalyWatchdog callAnomalyWatchdog,
Ringer.AccessibilityManagerAdapter accessibilityManagerAdapter,
Executor asyncTaskExecutor,
- BlockedNumbersAdapter blockedNumbersAdapter) {
+ BlockedNumbersAdapter blockedNumbersAdapter,
+ TransactionManager transactionManager) {
mContext = context;
mLock = lock;
mPhoneNumberUtilsAdapter = phoneNumberUtilsAdapter;
@@ -632,8 +635,9 @@
mClockProxy = clockProxy;
mToastFactory = toastFactory;
mRoleManagerAdapter = roleManagerAdapter;
- mCallStreamingController = new CallStreamingController(mContext);
+ mTransactionManager = transactionManager;
mBlockedNumbersAdapter = blockedNumbersAdapter;
+ mCallStreamingController = new CallStreamingController(mContext, mLock);
mListeners.add(mInCallWakeLockController);
mListeners.add(statusBarNotifier);
diff --git a/src/com/android/server/telecom/TelecomSystem.java b/src/com/android/server/telecom/TelecomSystem.java
index fc5b1b6..8984b2b 100644
--- a/src/com/android/server/telecom/TelecomSystem.java
+++ b/src/com/android/server/telecom/TelecomSystem.java
@@ -49,6 +49,7 @@
import com.android.server.telecom.ui.IncomingCallNotifier;
import com.android.server.telecom.ui.MissedCallNotifierImpl.MissedCallNotifierImplFactory;
import com.android.server.telecom.ui.ToastFactory;
+import com.android.server.telecom.voip.TransactionManager;
import java.io.FileNotFoundException;
import java.io.InputStream;
@@ -216,6 +217,7 @@
BlockedNumbersAdapter blockedNumbersAdapter) {
mContext = context.getApplicationContext();
LogUtils.initLogging(mContext);
+ android.telecom.Log.setLock(mLock);
AnomalyReporter.initialize(mContext);
DefaultDialerManagerAdapter defaultDialerAdapter =
new DefaultDialerCache.DefaultDialerManagerAdapterImpl();
@@ -337,6 +339,7 @@
CallAnomalyWatchdog callAnomalyWatchdog = new CallAnomalyWatchdog(
Executors.newSingleThreadScheduledExecutor(),
mLock, timeoutsAdapter, clockProxy);
+ TransactionManager transactionManager = TransactionManager.getInstance();
mCallsManager = new CallsManager(
mContext,
@@ -372,8 +375,8 @@
callAnomalyWatchdog,
accessibilityManagerAdapter,
asyncTaskExecutor,
- blockedNumbersAdapter);
-
+ blockedNumbersAdapter,
+ transactionManager);
mIncomingCallNotifier = incomingCallNotifier;
incomingCallNotifier.setCallsManagerProxy(new IncomingCallNotifier.CallsManagerProxy() {
@Override
diff --git a/src/com/android/server/telecom/TransactionalServiceWrapper.java b/src/com/android/server/telecom/TransactionalServiceWrapper.java
index d97d192..90acba8 100644
--- a/src/com/android/server/telecom/TransactionalServiceWrapper.java
+++ b/src/com/android/server/telecom/TransactionalServiceWrapper.java
@@ -86,7 +86,7 @@
private ConnectionServiceFocusManager.ConnectionServiceFocusListener mConnSvrFocusListener;
// init when constructor is called
private final Hashtable<String, Call> mTrackedCalls = new Hashtable<>();
- private final Object mLock;
+ private final TelecomSystem.SyncRoot mLock;
private final String mPackageName;
// needs to be non-final for testing
private TransactionManager mTransactionManager;
@@ -105,7 +105,7 @@
mPackageName = phoneAccountHandle.getComponentName().getPackageName();
mTransactionManager = TransactionManager.getInstance();
mStreamingController = mCallsManager.getCallStreamingController();
- mLock = new Object();
+ mLock = mCallsManager.getLock();
}
@VisibleForTesting
@@ -378,7 +378,7 @@
SerialTransaction serialTransactions = createSetActiveTransactions(call);
serialTransactions.appendTransaction(
new CallEventCallbackAckTransaction(mICallEventCallback,
- action, call.getId(), videoState));
+ action, call.getId(), videoState, mLock));
// do CallsManager workload before asking client and
// reset CallsManager state if client does NOT ack
@@ -403,7 +403,7 @@
Log.i(TAG, String.format(Locale.US, "onSetInactive: callId=[%s]", call.getId()));
mTransactionManager.addTransaction(
new CallEventCallbackAckTransaction(mICallEventCallback,
- ON_SET_INACTIVE, call.getId()), new OutcomeReceiver<>() {
+ ON_SET_INACTIVE, call.getId(), mLock), new OutcomeReceiver<>() {
@Override
public void onResult(VoipCallTransactionResult result) {
mCallsManager.markCallAsOnHold(call);
@@ -426,7 +426,7 @@
mTransactionManager.addTransaction(
new CallEventCallbackAckTransaction(mICallEventCallback, ON_DISCONNECT,
- call.getId(), cause), new OutcomeReceiver<>() {
+ call.getId(), cause, mLock), new OutcomeReceiver<>() {
@Override
public void onResult(VoipCallTransactionResult result) {
removeCallFromCallsManager(call, cause);
@@ -451,7 +451,7 @@
mTransactionManager.addTransaction(
new CallEventCallbackAckTransaction(mICallEventCallback, ON_STREAMING_STARTED,
- call.getId()), new OutcomeReceiver<>() {
+ call.getId(), mLock), new OutcomeReceiver<>() {
@Override
public void onResult(VoipCallTransactionResult result) {
}
@@ -560,7 +560,7 @@
transactions.add(new RequestFocusTransaction(mCallsManager, call));
// send off to Transaction Manager to process
- return new SerialTransaction(transactions);
+ return new SerialTransaction(transactions, mLock);
}
private SerialTransaction createSetAnswerTransactions(Call call, int videoState) {
@@ -574,7 +574,7 @@
transactions.add(new AnswerCallTransaction(mCallsManager, call, videoState));
// send off to Transaction Manager to process
- return new SerialTransaction(transactions);
+ return new SerialTransaction(transactions, mLock);
}
/***
@@ -631,12 +631,13 @@
subTransactions.add(mStreamingController.getCallStreamingServiceTransaction(
mCallsManager.getContext(), this, call));
// add t2.2 audio route operations
- subTransactions.add(new CallStreamingController.AudioInterceptionTransaction(call, true));
+ subTransactions.add(new CallStreamingController.AudioInterceptionTransaction(call,
+ true, mLock));
// add t2
- transactions.add(new ParallelTransaction(subTransactions));
+ transactions.add(new ParallelTransaction(subTransactions, mLock));
// send off to Transaction Manager to process
- return new SerialTransaction(transactions);
+ return new SerialTransaction(transactions, mLock);
}
private VoipCallTransaction createStopStreamingTransaction(Call call) {
@@ -647,8 +648,9 @@
// 1. unbind to call streaming service
transactions.add(mStreamingController.getUnbindStreamingServiceTransaction());
// 2. audio route operations
- transactions.add(new CallStreamingController.AudioInterceptionTransaction(call, false));
- return new ParallelTransaction(transactions);
+ transactions.add(new CallStreamingController.AudioInterceptionTransaction(call,
+ false, mLock));
+ return new ParallelTransaction(transactions, mLock);
}
diff --git a/src/com/android/server/telecom/voip/AnswerCallTransaction.java b/src/com/android/server/telecom/voip/AnswerCallTransaction.java
index 1eb34c4..efd2343 100644
--- a/src/com/android/server/telecom/voip/AnswerCallTransaction.java
+++ b/src/com/android/server/telecom/voip/AnswerCallTransaction.java
@@ -41,6 +41,7 @@
private final int mVideoState;
public AnswerCallTransaction(CallsManager callsManager, Call call, int videoState) {
+ super(callsManager.getLock());
mCallsManager = callsManager;
mCall = call;
mVideoState = videoState;
diff --git a/src/com/android/server/telecom/voip/CallEventCallbackAckTransaction.java b/src/com/android/server/telecom/voip/CallEventCallbackAckTransaction.java
index f47e4c5..3d59ed3 100644
--- a/src/com/android/server/telecom/voip/CallEventCallbackAckTransaction.java
+++ b/src/com/android/server/telecom/voip/CallEventCallbackAckTransaction.java
@@ -26,6 +26,7 @@
import android.util.Log;
import com.android.internal.telecom.ICallEventCallback;
+import com.android.server.telecom.TelecomSystem;
import com.android.server.telecom.TransactionalServiceWrapper;
import java.util.concurrent.CompletableFuture;
@@ -66,7 +67,8 @@
}
public CallEventCallbackAckTransaction(ICallEventCallback service, String action,
- String callId) {
+ String callId, TelecomSystem.SyncRoot lock) {
+ super(lock);
mICallEventCallback = service;
mAction = action;
mCallId = callId;
@@ -74,7 +76,8 @@
public CallEventCallbackAckTransaction(ICallEventCallback service, String action, String callId,
- int videoState) {
+ int videoState, TelecomSystem.SyncRoot lock) {
+ super(lock);
mICallEventCallback = service;
mAction = action;
mCallId = callId;
@@ -82,7 +85,8 @@
}
public CallEventCallbackAckTransaction(ICallEventCallback service, String action, String callId,
- DisconnectCause cause) {
+ DisconnectCause cause, TelecomSystem.SyncRoot lock) {
+ super(lock);
mICallEventCallback = service;
mAction = action;
mCallId = callId;
diff --git a/src/com/android/server/telecom/voip/EndCallTransaction.java b/src/com/android/server/telecom/voip/EndCallTransaction.java
index 7a5006a..0cb7458 100644
--- a/src/com/android/server/telecom/voip/EndCallTransaction.java
+++ b/src/com/android/server/telecom/voip/EndCallTransaction.java
@@ -36,6 +36,7 @@
private DisconnectCause mCause;
public EndCallTransaction(CallsManager callsManager, DisconnectCause cause, Call call) {
+ super(callsManager.getLock());
mCallsManager = callsManager;
mCause = cause;
mCall = call;
diff --git a/src/com/android/server/telecom/voip/EndpointChangeTransaction.java b/src/com/android/server/telecom/voip/EndpointChangeTransaction.java
index 88630c8..e037a79 100644
--- a/src/com/android/server/telecom/voip/EndpointChangeTransaction.java
+++ b/src/com/android/server/telecom/voip/EndpointChangeTransaction.java
@@ -32,6 +32,7 @@
private final CallsManager mCallsManager;
public EndpointChangeTransaction(CallEndpoint endpoint, CallsManager callsManager) {
+ super(callsManager.getLock());
mCallEndpoint = endpoint;
mCallsManager = callsManager;
}
diff --git a/src/com/android/server/telecom/voip/HoldActiveCallForNewCallTransaction.java b/src/com/android/server/telecom/voip/HoldActiveCallForNewCallTransaction.java
index 5d269b1..ab203ad 100644
--- a/src/com/android/server/telecom/voip/HoldActiveCallForNewCallTransaction.java
+++ b/src/com/android/server/telecom/voip/HoldActiveCallForNewCallTransaction.java
@@ -33,6 +33,7 @@
private final Call mCall;
public HoldActiveCallForNewCallTransaction(CallsManager callsManager, Call call) {
+ super(callsManager.getLock());
mCallsManager = callsManager;
mCall = call;
}
diff --git a/src/com/android/server/telecom/voip/HoldCallTransaction.java b/src/com/android/server/telecom/voip/HoldCallTransaction.java
index bf0805e..6c4e8b7 100644
--- a/src/com/android/server/telecom/voip/HoldCallTransaction.java
+++ b/src/com/android/server/telecom/voip/HoldCallTransaction.java
@@ -32,6 +32,7 @@
private final Call mCall;
public HoldCallTransaction(CallsManager callsManager, Call call) {
+ super(callsManager.getLock());
mCallsManager = callsManager;
mCall = call;
}
diff --git a/src/com/android/server/telecom/voip/IncomingCallTransaction.java b/src/com/android/server/telecom/voip/IncomingCallTransaction.java
index 7bb9736..7413014 100644
--- a/src/com/android/server/telecom/voip/IncomingCallTransaction.java
+++ b/src/com/android/server/telecom/voip/IncomingCallTransaction.java
@@ -40,6 +40,7 @@
public IncomingCallTransaction(String callId, CallAttributes callAttributes,
CallsManager callsManager) {
+ super(callsManager.getLock());
mCallId = callId;
mCallAttributes = callAttributes;
mCallsManager = callsManager;
diff --git a/src/com/android/server/telecom/voip/OutgoingCallTransaction.java b/src/com/android/server/telecom/voip/OutgoingCallTransaction.java
index 169fc48..124f5f3 100644
--- a/src/com/android/server/telecom/voip/OutgoingCallTransaction.java
+++ b/src/com/android/server/telecom/voip/OutgoingCallTransaction.java
@@ -46,6 +46,7 @@
public OutgoingCallTransaction(String callId, Context context, CallAttributes callAttributes,
CallsManager callsManager) {
+ super(callsManager.getLock());
mCallId = callId;
mContext = context;
mCallingPackage = mContext.getOpPackageName();
diff --git a/src/com/android/server/telecom/voip/ParallelTransaction.java b/src/com/android/server/telecom/voip/ParallelTransaction.java
index c2d532c..2762949 100644
--- a/src/com/android/server/telecom/voip/ParallelTransaction.java
+++ b/src/com/android/server/telecom/voip/ParallelTransaction.java
@@ -16,6 +16,8 @@
package com.android.server.telecom.voip;
+import com.android.server.telecom.TelecomSystem;
+
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@@ -23,8 +25,9 @@
* A VoipCallTransaction implementation that its sub transactions will be executed in parallel
*/
public class ParallelTransaction extends VoipCallTransaction {
- public ParallelTransaction(List<VoipCallTransaction> subTransactions) {
- super(subTransactions);
+ public ParallelTransaction(List<VoipCallTransaction> subTransactions,
+ TelecomSystem.SyncRoot lock) {
+ super(subTransactions, lock);
}
@Override
diff --git a/src/com/android/server/telecom/voip/RequestFocusTransaction.java b/src/com/android/server/telecom/voip/RequestFocusTransaction.java
index 5dedbda..cb4ee37 100644
--- a/src/com/android/server/telecom/voip/RequestFocusTransaction.java
+++ b/src/com/android/server/telecom/voip/RequestFocusTransaction.java
@@ -34,6 +34,7 @@
private final Call mCall;
public RequestFocusTransaction(CallsManager callsManager, Call call) {
+ super(callsManager.getLock());
mCallsManager = callsManager;
mCall = call;
}
diff --git a/src/com/android/server/telecom/voip/SerialTransaction.java b/src/com/android/server/telecom/voip/SerialTransaction.java
index 87bc9ec..4c6d02e 100644
--- a/src/com/android/server/telecom/voip/SerialTransaction.java
+++ b/src/com/android/server/telecom/voip/SerialTransaction.java
@@ -16,14 +16,17 @@
package com.android.server.telecom.voip;
+import com.android.server.telecom.TelecomSystem;
+
import java.util.List;
/**
* A VoipCallTransaction implementation that its sub transactions will be executed in serial
*/
public class SerialTransaction extends VoipCallTransaction {
- public SerialTransaction(List<VoipCallTransaction> subTransactions) {
- super(subTransactions);
+ public SerialTransaction(List<VoipCallTransaction> subTransactions,
+ TelecomSystem.SyncRoot lock) {
+ super(subTransactions, lock);
}
public void appendTransaction(VoipCallTransaction transaction){
diff --git a/src/com/android/server/telecom/voip/VoipCallTransaction.java b/src/com/android/server/telecom/voip/VoipCallTransaction.java
index 413a1cd..a1cc13c 100644
--- a/src/com/android/server/telecom/voip/VoipCallTransaction.java
+++ b/src/com/android/server/telecom/voip/VoipCallTransaction.java
@@ -20,6 +20,7 @@
import android.os.HandlerThread;
import com.android.server.telecom.LoggedHandlerExecutor;
+import com.android.server.telecom.TelecomSystem;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@@ -36,17 +37,19 @@
protected Handler mHandler;
protected TransactionManager.TransactionCompleteListener mCompleteListener;
protected List<VoipCallTransaction> mSubTransactions;
+ private TelecomSystem.SyncRoot mLock;
public VoipCallTransaction(
- List<VoipCallTransaction> subTransactions) {
+ List<VoipCallTransaction> subTransactions, TelecomSystem.SyncRoot lock) {
mSubTransactions = subTransactions;
mHandlerThread = new HandlerThread(this.toString());
mHandlerThread.start();
mHandler = new Handler(mHandlerThread.getLooper());
+ mLock = lock;
}
- public VoipCallTransaction() {
- this(null /** mSubTransactions */);
+ public VoipCallTransaction(TelecomSystem.SyncRoot lock) {
+ this(null /** mSubTransactions */, lock);
}
public void start() {
@@ -68,7 +71,7 @@
CompletableFuture<Void> future = CompletableFuture.completedFuture(null);
future.thenComposeAsync(this::processTransaction,
new LoggedHandlerExecutor(mHandler, mTransactionName + "@"
- + hashCode() + ".pT", null))
+ + hashCode() + ".pT", mLock))
.thenApplyAsync(
(Function<VoipCallTransactionResult, Void>) result -> {
mCompleted.set(true);
diff --git a/tests/src/com/android/server/telecom/tests/CallsManagerTest.java b/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
index e5312f0..c467671 100644
--- a/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
@@ -121,6 +121,7 @@
import com.android.server.telecom.ui.AudioProcessingNotification;
import com.android.server.telecom.ui.DisconnectedCallNotifier;
import com.android.server.telecom.ui.ToastFactory;
+import com.android.server.telecom.voip.TransactionManager;
import org.junit.After;
import org.junit.Before;
@@ -304,7 +305,8 @@
mAccessibilityManagerAdapter,
// Just do async tasks synchronously to support testing.
command -> command.run(),
- mBlockedNumbersAdapter);
+ mBlockedNumbersAdapter,
+ TransactionManager.getTestInstance());
when(mPhoneAccountRegistrar.getPhoneAccount(
eq(SELF_MANAGED_HANDLE), any())).thenReturn(SELF_MANAGED_ACCOUNT);
diff --git a/tests/src/com/android/server/telecom/tests/TransactionalServiceWrapperTest.java b/tests/src/com/android/server/telecom/tests/TransactionalServiceWrapperTest.java
index ae6e15f..98624d4 100644
--- a/tests/src/com/android/server/telecom/tests/TransactionalServiceWrapperTest.java
+++ b/tests/src/com/android/server/telecom/tests/TransactionalServiceWrapperTest.java
@@ -35,6 +35,7 @@
import com.android.internal.telecom.ICallEventCallback;
import com.android.server.telecom.Call;
import com.android.server.telecom.CallsManager;
+import com.android.server.telecom.TelecomSystem;
import com.android.server.telecom.TransactionalServiceRepository;
import com.android.server.telecom.TransactionalServiceWrapper;
import com.android.server.telecom.voip.EndCallTransaction;
@@ -68,6 +69,7 @@
@Mock private TransactionManager mTransactionManager;
@Mock private ICallEventCallback mCallEventCallback;
@Mock private TransactionalServiceRepository mRepository;
+ private final TelecomSystem.SyncRoot mLock = new TelecomSystem.SyncRoot() {};
@Override
@Before
@@ -76,6 +78,7 @@
MockitoAnnotations.initMocks(this);
Mockito.when(mMockCall1.getId()).thenReturn(CALL_ID_1);
Mockito.when(mMockCall2.getId()).thenReturn(CALL_ID_2);
+ Mockito.when(mCallsManager.getLock()).thenReturn(mLock);
mTransactionalServiceWrapper = new TransactionalServiceWrapper(mCallEventCallback,
mCallsManager, SERVICE_HANDLE, mMockCall1, mRepository);
diff --git a/tests/src/com/android/server/telecom/tests/VoipCallTransactionTest.java b/tests/src/com/android/server/telecom/tests/VoipCallTransactionTest.java
index 58e4a77..62b8bc4 100644
--- a/tests/src/com/android/server/telecom/tests/VoipCallTransactionTest.java
+++ b/tests/src/com/android/server/telecom/tests/VoipCallTransactionTest.java
@@ -25,6 +25,7 @@
import androidx.test.filters.SmallTest;
+import com.android.server.telecom.TelecomSystem;
import com.android.server.telecom.voip.ParallelTransaction;
import com.android.server.telecom.voip.SerialTransaction;
import com.android.server.telecom.voip.TransactionManager;
@@ -49,6 +50,7 @@
public class VoipCallTransactionTest extends TelecomTestCase {
private StringBuilder mLog;
private TransactionManager mTransactionManager;
+ private static final TelecomSystem.SyncRoot mLock = new TelecomSystem.SyncRoot() { };
private class TestVoipCallTransaction extends VoipCallTransaction {
public static final int SUCCESS = 0;
@@ -60,7 +62,7 @@
private int mType;
public TestVoipCallTransaction(String name, long sleepTime, int type) {
- super();
+ super(mLock);
mName = name;
mSleepTime = sleepTime;
mType = type;
@@ -125,7 +127,8 @@
OutcomeReceiver<VoipCallTransactionResult, CallException> outcomeReceiver =
resultFuture::complete;
String expectedLog = "t1 success;\nt2 success;\nt3 success;\n";
- mTransactionManager.addTransaction(new SerialTransaction(subTransactions), outcomeReceiver);
+ mTransactionManager.addTransaction(new SerialTransaction(subTransactions, mLock),
+ outcomeReceiver);
assertEquals(VoipCallTransactionResult.RESULT_SUCCEED,
resultFuture.get(5000L, TimeUnit.MILLISECONDS).getResult());
assertEquals(expectedLog, mLog.toString());
@@ -158,7 +161,7 @@
exceptionFuture.complete(e.getMessage());
}
};
- mTransactionManager.addTransaction(new SerialTransaction(subTransactions),
+ mTransactionManager.addTransaction(new SerialTransaction(subTransactions, mLock),
outcomeReceiver);
exceptionFuture.get(5000L, TimeUnit.MILLISECONDS);
String expectedLog = "t1 success;\nt2 failed;\n";
@@ -182,7 +185,7 @@
CompletableFuture<VoipCallTransactionResult> resultFuture = new CompletableFuture<>();
OutcomeReceiver<VoipCallTransactionResult, CallException> outcomeReceiver =
resultFuture::complete;
- mTransactionManager.addTransaction(new ParallelTransaction(subTransactions),
+ mTransactionManager.addTransaction(new ParallelTransaction(subTransactions, mLock),
outcomeReceiver);
assertEquals(VoipCallTransactionResult.RESULT_SUCCEED,
resultFuture.get(5000L, TimeUnit.MILLISECONDS).getResult());
@@ -219,7 +222,7 @@
exceptionFuture.complete(e.getMessage());
}
};
- mTransactionManager.addTransaction(new ParallelTransaction(subTransactions),
+ mTransactionManager.addTransaction(new ParallelTransaction(subTransactions, mLock),
outcomeReceiver);
exceptionFuture.get(5000L, TimeUnit.MILLISECONDS);
assertTrue(mLog.toString().contains("t2 failed;\n"));