From be80138c19e77aafa79df66039d5d70e829891db Mon Sep 17 00:00:00 2001 From: lucaslin Date: Wed, 30 Dec 2020 11:54:55 +0800 Subject: [PATCH] Replace withCleanCallingIdentity with [clear|restore]CallingIdentity To prevent using @hide method - withCleanCallingIdentity() from mainline module, use clearCallingIdentity() & restoreCallingIdentity() instead. Bug: 172183305 Test: FrameworksNetTests, CtsNetTestCasesLatestSdk Change-Id: Iccd492741a0a5b1c2531fc5fc1378933b65ae038 --- .../net/ConnectivityDiagnosticsManager.java | 21 +++++-- .../java/android/net/ConnectivityManager.java | 42 +++++++++----- core/java/android/net/SocketKeepalive.java | 56 ++++++++++++------- 3 files changed, 78 insertions(+), 41 deletions(-) diff --git a/core/java/android/net/ConnectivityDiagnosticsManager.java b/core/java/android/net/ConnectivityDiagnosticsManager.java index 704f31d7f7..5234494973 100644 --- a/core/java/android/net/ConnectivityDiagnosticsManager.java +++ b/core/java/android/net/ConnectivityDiagnosticsManager.java @@ -623,32 +623,41 @@ public class ConnectivityDiagnosticsManager { /** @hide */ @VisibleForTesting public void onConnectivityReportAvailable(@NonNull ConnectivityReport report) { - Binder.withCleanCallingIdentity(() -> { + final long token = Binder.clearCallingIdentity(); + try { mExecutor.execute(() -> { mCb.onConnectivityReportAvailable(report); }); - }); + } finally { + Binder.restoreCallingIdentity(token); + } } /** @hide */ @VisibleForTesting public void onDataStallSuspected(@NonNull DataStallReport report) { - Binder.withCleanCallingIdentity(() -> { + final long token = Binder.clearCallingIdentity(); + try { mExecutor.execute(() -> { mCb.onDataStallSuspected(report); }); - }); + } finally { + Binder.restoreCallingIdentity(token); + } } /** @hide */ @VisibleForTesting public void onNetworkConnectivityReported( @NonNull Network network, boolean hasConnectivity) { - Binder.withCleanCallingIdentity(() -> { + final long token = Binder.clearCallingIdentity(); + try { mExecutor.execute(() -> { mCb.onNetworkConnectivityReported(network, hasConnectivity); }); - }); + } finally { + Binder.restoreCallingIdentity(token); + } } } diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 540ea5c159..9fa5b20673 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -1832,30 +1832,42 @@ public class ConnectivityManager { mCallback = new ISocketKeepaliveCallback.Stub() { @Override public void onStarted(int slot) { - Binder.withCleanCallingIdentity(() -> - mExecutor.execute(() -> { - mSlot = slot; - callback.onStarted(); - })); + final long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute(() -> { + mSlot = slot; + callback.onStarted(); + }); + } finally { + Binder.restoreCallingIdentity(token); + } } @Override public void onStopped() { - Binder.withCleanCallingIdentity(() -> - mExecutor.execute(() -> { - mSlot = null; - callback.onStopped(); - })); + final long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute(() -> { + mSlot = null; + callback.onStopped(); + }); + } finally { + Binder.restoreCallingIdentity(token); + } mExecutor.shutdown(); } @Override public void onError(int error) { - Binder.withCleanCallingIdentity(() -> - mExecutor.execute(() -> { - mSlot = null; - callback.onError(error); - })); + final long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute(() -> { + mSlot = null; + callback.onError(error); + }); + } finally { + Binder.restoreCallingIdentity(token); + } mExecutor.shutdown(); } diff --git a/core/java/android/net/SocketKeepalive.java b/core/java/android/net/SocketKeepalive.java index a7dce18a4f..d007a9520c 100644 --- a/core/java/android/net/SocketKeepalive.java +++ b/core/java/android/net/SocketKeepalive.java @@ -187,38 +187,54 @@ public abstract class SocketKeepalive implements AutoCloseable { mCallback = new ISocketKeepaliveCallback.Stub() { @Override public void onStarted(int slot) { - Binder.withCleanCallingIdentity(() -> - mExecutor.execute(() -> { - mSlot = slot; - callback.onStarted(); - })); + final long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute(() -> { + mSlot = slot; + callback.onStarted(); + }); + } finally { + Binder.restoreCallingIdentity(token); + } } @Override public void onStopped() { - Binder.withCleanCallingIdentity(() -> - executor.execute(() -> { - mSlot = null; - callback.onStopped(); - })); + final long token = Binder.clearCallingIdentity(); + try { + executor.execute(() -> { + mSlot = null; + callback.onStopped(); + }); + } finally { + Binder.restoreCallingIdentity(token); + } } @Override public void onError(int error) { - Binder.withCleanCallingIdentity(() -> - executor.execute(() -> { - mSlot = null; - callback.onError(error); - })); + final long token = Binder.clearCallingIdentity(); + try { + executor.execute(() -> { + mSlot = null; + callback.onError(error); + }); + } finally { + Binder.restoreCallingIdentity(token); + } } @Override public void onDataReceived() { - Binder.withCleanCallingIdentity(() -> - executor.execute(() -> { - mSlot = null; - callback.onDataReceived(); - })); + final long token = Binder.clearCallingIdentity(); + try { + executor.execute(() -> { + mSlot = null; + callback.onDataReceived(); + }); + } finally { + Binder.restoreCallingIdentity(token); + } } }; }