summaryrefslogtreecommitdiff
path: root/telecomm/java/android/telecom/Logging/Session.java
diff options
context:
space:
mode:
authorBrad Ebinger <breadley@google.com>2021-04-29 13:59:16 -0700
committerBrad Ebinger <breadley@google.com>2021-04-29 21:18:17 +0000
commitbde5c375206a628fe1dff233541dfcb4b768f2f6 (patch)
tree1188570ab700f2522cb9fd4f7ff24e9f62680e74 /telecomm/java/android/telecom/Logging/Session.java
parentce5f5faab8dd790ea38cdc7d4d1754b4fa8d5813 (diff)
Bound Telecom logging recursion
Put a bound on the recursion in Session#toString to ensure we do not accidently cause a Stack overflow Bug: 186694546 AOSP: aosp/1691210 Test: atest TeleServiceTests Change-Id: I52f44dd02d0d860d0894e9b84fded8cf5ff5a18e
Diffstat (limited to 'telecomm/java/android/telecom/Logging/Session.java')
-rw-r--r--telecomm/java/android/telecom/Logging/Session.java22
1 files changed, 11 insertions, 11 deletions
diff --git a/telecomm/java/android/telecom/Logging/Session.java b/telecomm/java/android/telecom/Logging/Session.java
index 4aa3614fa004..e2fb6019f30a 100644
--- a/telecomm/java/android/telecom/Logging/Session.java
+++ b/telecomm/java/android/telecom/Logging/Session.java
@@ -453,19 +453,19 @@ public class Session {
@Override
public String toString() {
- if (mParentSession != null && mIsStartedFromActiveSession) {
+ Session sessionToPrint = this;
+ if (getParentSession() != null && isStartedFromActiveSession()) {
// Log.startSession was called from within another active session. Use the parent's
// Id instead of the child to reduce confusion.
- return mParentSession.toString();
- } else {
- StringBuilder methodName = new StringBuilder();
- methodName.append(getFullMethodPath(false /*truncatePath*/));
- if (mOwnerInfo != null && !mOwnerInfo.isEmpty()) {
- methodName.append("(");
- methodName.append(mOwnerInfo);
- methodName.append(")");
- }
- return methodName.toString() + "@" + getFullSessionId();
+ sessionToPrint = getRootSession("toString");
+ }
+ StringBuilder methodName = new StringBuilder();
+ methodName.append(sessionToPrint.getFullMethodPath(false /*truncatePath*/));
+ if (sessionToPrint.getOwnerInfo() != null && !sessionToPrint.getOwnerInfo().isEmpty()) {
+ methodName.append("(");
+ methodName.append(sessionToPrint.getOwnerInfo());
+ methodName.append(")");
}
+ return methodName.toString() + "@" + sessionToPrint.getFullSessionId();
}
}