Loading services/core/java/com/android/server/pm/dex/PackageDynamicCodeLoading.java +4 −3 Original line number Diff line number Diff line Loading @@ -538,9 +538,10 @@ class PackageDynamicCodeLoading extends AbstractStatsBase<Void> { } else { if (fileInfo.mUserId != userId) { // This should be impossible: private app files are always user-specific and // can't be accessed from different users. throw new IllegalArgumentException("Cannot change userId for '" + path + "' from " + fileInfo.mUserId + " to " + userId); // can't be accessed from different users. But it does very occasionally happen // (b/323665257). Ignore such cases - we shouldn't record data from a different // user. return false; } // Changing file type (i.e. loading the same file in different ways is possible if // unlikely. We allow it but ignore it. Loading services/tests/servicestests/src/com/android/server/pm/dex/PackageDynamicCodeLoadingTests.java +2 −2 Original line number Diff line number Diff line Loading @@ -106,13 +106,13 @@ public class PackageDynamicCodeLoadingTests { } @Test public void testRecord_changeUserForFile_throws() { public void testRecord_changeUserForFile_ignored() { Entry entry1 = new Entry("owning.package1", "/path/file1", 'D', 10, "loading.package1"); Entry entry2 = new Entry("owning.package1", "/path/file1", 'D', 20, "loading.package1"); PackageDynamicCodeLoading info = makePackageDcl(entry1); assertThrows(() -> record(info, entry2)); assertThat(record(info, entry2)).isFalse(); assertHasEntries(info, entry1); } Loading Loading
services/core/java/com/android/server/pm/dex/PackageDynamicCodeLoading.java +4 −3 Original line number Diff line number Diff line Loading @@ -538,9 +538,10 @@ class PackageDynamicCodeLoading extends AbstractStatsBase<Void> { } else { if (fileInfo.mUserId != userId) { // This should be impossible: private app files are always user-specific and // can't be accessed from different users. throw new IllegalArgumentException("Cannot change userId for '" + path + "' from " + fileInfo.mUserId + " to " + userId); // can't be accessed from different users. But it does very occasionally happen // (b/323665257). Ignore such cases - we shouldn't record data from a different // user. return false; } // Changing file type (i.e. loading the same file in different ways is possible if // unlikely. We allow it but ignore it. Loading
services/tests/servicestests/src/com/android/server/pm/dex/PackageDynamicCodeLoadingTests.java +2 −2 Original line number Diff line number Diff line Loading @@ -106,13 +106,13 @@ public class PackageDynamicCodeLoadingTests { } @Test public void testRecord_changeUserForFile_throws() { public void testRecord_changeUserForFile_ignored() { Entry entry1 = new Entry("owning.package1", "/path/file1", 'D', 10, "loading.package1"); Entry entry2 = new Entry("owning.package1", "/path/file1", 'D', 20, "loading.package1"); PackageDynamicCodeLoading info = makePackageDcl(entry1); assertThrows(() -> record(info, entry2)); assertThat(record(info, entry2)).isFalse(); assertHasEntries(info, entry1); } Loading