summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorMarcin Oczeretko <marcinoc@google.com>2022-01-17 11:41:37 +0000
committerMarcin Oczeretko <marcinoc@google.com>2022-01-18 17:02:23 +0000
commit28d940e33ab78f3561070385c5bb784e0016fa3e (patch)
treee320843710de0af091d26b4a8b0ea9d6c14db635 /core/java/android
parent702c8991ec79c46af79729254e4645a64cddd116 (diff)
Fix NPE in Binder#getTransactionName
Bug: 214053959 Test: manual Change-Id: Ie77080d20f638e5e6e0a6ecb255d45bdb12f3c4d
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/os/Binder.java17
1 files changed, 12 insertions, 5 deletions
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index 429450ce8e5e..80cf2f87f1d6 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -311,6 +311,7 @@ public class Binder implements IBinder {
private final long mObject;
private IInterface mOwner;
+ @Nullable
private String mDescriptor;
private volatile String[] mTransactionTraceNames = null;
private volatile String mSimpleDescriptor = null;
@@ -930,8 +931,8 @@ public class Binder implements IBinder {
transactionNames[i] = buf.toString();
buf.setLength(0);
}
- mTransactionTraceNames = transactionNames;
mSimpleDescriptor = descriptor;
+ mTransactionTraceNames = transactionNames;
}
final int index = transactionCode - FIRST_CALL_TRANSACTION;
if (index < 0 || index >= mTransactionTraceNames.length) {
@@ -940,13 +941,19 @@ public class Binder implements IBinder {
return mTransactionTraceNames[index];
}
- private String getSimpleDescriptor() {
- final int dot = mDescriptor.lastIndexOf(".");
+ private @NonNull String getSimpleDescriptor() {
+ String descriptor = mDescriptor;
+ if (descriptor == null) {
+ // Just "Binder" to avoid null checks in transaction name tracing.
+ return "Binder";
+ }
+
+ final int dot = descriptor.lastIndexOf(".");
if (dot > 0) {
// Strip the package name
- return mDescriptor.substring(dot + 1);
+ return descriptor.substring(dot + 1);
}
- return mDescriptor;
+ return descriptor;
}
/**