From 527b24f1bc85c587147361b90192381e7dcea3d7 Mon Sep 17 00:00:00 2001 From: JW Wang Date: Thu, 7 Jul 2022 10:40:06 +0800 Subject: [PATCH] Fix comparator The original code doesn't satisfy compare(x,y) == -compare(y,x) Bug: 225756739 Bug: 238202065 Test: presubmit Change-Id: I26ca8096a3362a07c5cd10985ffc905271f6703b --- .../java/com/android/server/pm/InstallPackageHelper.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index e2bf4a46653bd..888154795eaae 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -3464,8 +3464,9 @@ final class InstallPackageHelper { } // Sort the list to ensure we always process factory packages first Collections.sort(parseResults, (a, b) -> { - ApexInfo ai = parsingApexInfo.get(a.scanFile); - return ai.isFactory ? -1 : 1; + ApexInfo i1 = parsingApexInfo.get(a.scanFile); + ApexInfo i2 = parsingApexInfo.get(b.scanFile); + return Boolean.compare(i2.isFactory, i1.isFactory); });