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

Commit 28ba5b97 authored by Ytai Ben-Tsvi's avatar Ytai Ben-Tsvi
Browse files

Fix bug in dumpsys

Previously, we would reset the active modules list every time
listModules() is called. We've never seen that before, since there
would only be one session until now.

With this change, multiple sessions are dumped.

Change-Id: Ic0d59ca341e659499a9d06dccd452453e02952ef
Bug: 163865561
parent c79176dc
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -171,10 +171,23 @@ public class SoundTriggerMiddlewareValidation implements ISoundTriggerMiddleware
            // From here on, every exception isn't client's fault.
            try {
                SoundTriggerModuleDescriptor[] result = mDelegate.listModules();
                if (mModules == null) {
                    mModules = new HashMap<>(result.length);
                    for (SoundTriggerModuleDescriptor desc : result) {
                        mModules.put(desc.handle, new ModuleState(desc.properties));
                    }
                } else {
                    if (result.length != mModules.size()) {
                        throw new RuntimeException(
                                "listModules must always return the same result.");
                    }
                    for (SoundTriggerModuleDescriptor desc : result) {
                        if (!mModules.containsKey(desc.handle)) {
                            throw new RuntimeException(
                                    "listModules must always return the same result.");
                        }
                    }
                }
                return result;
            } catch (Exception e) {
                throw handleException(e);
@@ -680,6 +693,7 @@ public class SoundTriggerMiddlewareValidation implements ISoundTriggerMiddleware

        void dump(PrintWriter pw) {
            if (mState == ModuleStatus.ALIVE) {
                pw.println("-------------------------------");
                pw.printf("Session %s, client: %s\n", toString(),
                        ObjectPrinter.print(mOriginatorIdentity, true, 16));
                pw.printf("Loaded models (handle, active, description):", toString());
@@ -693,6 +707,7 @@ public class SoundTriggerMiddlewareValidation implements ISoundTriggerMiddleware
                    pw.print(entry.getValue().description);
                    pw.println();
                }
                pw.println();
            } else {
                pw.printf("Session %s is dead", toString());
                pw.println();