summaryrefslogtreecommitdiff
path: root/keystore/java/android/security/KeyStoreSecurityLevel.java
diff options
context:
space:
mode:
authorDaniel Norman <danielnorman@google.com>2021-02-19 00:13:26 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-02-19 00:13:26 +0000
commitba754c5bbb7390102025361188754de381114ec7 (patch)
treec52bca988b3ba4300e867c7c6e1305c0e8c4883f /keystore/java/android/security/KeyStoreSecurityLevel.java
parent3e4a96d4914067cc746fcc8cb97a6816b43f62f7 (diff)
parent6cdf1484e28507966ce7807613572d462e7a0bd6 (diff)
Merge changes from topic "SP1A.210208.001" into s-keystone-qcom-dev
* changes: Prevent null access in ConnectivityService when mOldNetwork is null. Stops calling AImageDecoder_delete to hide bootanim error. Re-apply value add in setMobileDataIndicators() to new test. Adapt to NetworkRequestInfo request becoming a requests list. Hides ProcessRecord SeempLog message after refactoring. Removes try-catch when calling removeCapabilitiesCallback. Merge SP1A.210208.001
Diffstat (limited to 'keystore/java/android/security/KeyStoreSecurityLevel.java')
-rw-r--r--keystore/java/android/security/KeyStoreSecurityLevel.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/keystore/java/android/security/KeyStoreSecurityLevel.java b/keystore/java/android/security/KeyStoreSecurityLevel.java
index 3ef4aa5b7ec3..372add9b7ecb 100644
--- a/keystore/java/android/security/KeyStoreSecurityLevel.java
+++ b/keystore/java/android/security/KeyStoreSecurityLevel.java
@@ -52,7 +52,7 @@ public class KeyStoreSecurityLevel {
try {
return request.execute();
} catch (ServiceSpecificException e) {
- throw new KeyStoreException(e.errorCode, "");
+ throw KeyStore2.getKeyStoreException(e.errorCode);
} catch (RemoteException e) {
// Log exception and report invalid operation handle.
// This should prompt the caller drop the reference to this operation and retry.
@@ -96,25 +96,26 @@ public class KeyStoreSecurityLevel {
} catch (ServiceSpecificException e) {
switch (e.errorCode) {
case ResponseCode.BACKEND_BUSY: {
+ long backOffHint = (long) (Math.random() * 80 + 20);
if (CompatChanges.isChangeEnabled(
KeyStore2.KEYSTORE_OPERATION_CREATION_MAY_FAIL)) {
// Starting with Android S we inform the caller about the
// backend being busy.
- throw new BackendBusyException();
+ throw new BackendBusyException(backOffHint);
} else {
// Before Android S operation creation must always succeed. So we
// just have to retry. We do so with a randomized back-off between
- // 50 and 250ms.
+ // 20 and 100ms.
// It is a little awkward that we cannot break out of this loop
// by interrupting this thread. But that is the expected behavior.
// There is some comfort in the fact that interrupting a thread
// also does not unblock a thread waiting for a binder transaction.
- interruptedPreservingSleep((long) (Math.random() * 200 + 50));
+ interruptedPreservingSleep(backOffHint);
}
break;
}
default:
- throw new KeyStoreException(e.errorCode, "");
+ throw KeyStore2.getKeyStoreException(e.errorCode);
}
} catch (RemoteException e) {
Log.w(TAG, "Cannot connect to keystore", e);