Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6df10854 authored by Chris Li's avatar Chris Li
Browse files

Add debug log for executeTransaction error.

Bug: 322171786
Bug: 260873529
Test: pass existing tests
Change-Id: I3f85bb2b92f218b62a951b84565edaf4afd19d33
parent e27fe837
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -298,6 +298,33 @@ public class ClientTransaction implements Parcelable, ObjectPoolItem {
        return result;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();
        sb.append("ClientTransaction{");
        if (mTransactionItems != null) {
            // #addTransactionItem
            sb.append("\n  transactionItems=[");
            final int size = mTransactionItems.size();
            for (int i = 0; i < size; i++) {
                sb.append("\n    ").append(mTransactionItems.get(i));
            }
            sb.append("\n  ]");
        } else {
            // #addCallback
            sb.append("\n  callbacks=[");
            final int size = mActivityCallbacks != null ? mActivityCallbacks.size() : 0;
            for (int i = 0; i < size; i++) {
                sb.append("\n    ").append(mActivityCallbacks.get(i));
            }
            sb.append("\n  ]");
            // #setLifecycleStateRequest
            sb.append("\n  stateRequest=").append(mLifecycleStateRequest);
        }
        sb.append("\n}");
        return sb.toString();
    }

    /** Dump transaction items callback items and final lifecycle state request. */
    void dump(@NonNull String prefix, @NonNull PrintWriter pw,
            @NonNull ClientTransactionHandler transactionHandler) {
+4 −0
Original line number Diff line number Diff line
@@ -97,6 +97,10 @@ public class TransactionExecutor {
                executeCallbacks(transaction);
                executeLifecycleState(transaction);
            }
        } catch (Exception e) {
            Slog.e(TAG, "Failed to execute the transaction: "
                    + transactionToString(transaction, mTransactionHandler));
            throw e;
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);
        }
+5 −1
Original line number Diff line number Diff line
@@ -64,6 +64,10 @@ class ClientLifecycleManager {
        final IApplicationThread client = transaction.getClient();
        try {
            transaction.schedule();
        } catch (RemoteException e) {
            Slog.w(TAG, "Failed to deliver transaction for " + client
                            + "\ntransaction=" + transaction);
            throw e;
        } finally {
            if (!(client instanceof Binder)) {
                // If client is not an instance of Binder - it's a remote call and at this point it
@@ -157,7 +161,7 @@ class ClientLifecycleManager {
            try {
                scheduleTransaction(transaction);
            } catch (RemoteException e) {
                Slog.e(TAG, "Failed to deliver transaction for " + transaction.getClient());
                Slog.e(TAG, "Failed to deliver pending transaction", e);
            }
        }
        mPendingTransactions.clear();