summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-06-14 11:37:23 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-06-14 11:37:23 +0000
commitfcafa1c9dbf356e51a889b0a68f311d98e0e8589 (patch)
tree0daa70e0bb7f86b19ebf742e4470c3cc0c23c52c
parent6f37bc6e720357e94be3df9ea717813a39bec6b7 (diff)
parentb27d29b32e64dff2b2ac6c95a128f7d0d53fe6bf (diff)
Merge "Try closing PFDs sent in map after binder call" into main
-rw-r--r--core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java b/core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java
index 293015f86cee..d82fe1ca885c 100644
--- a/core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java
+++ b/core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java
@@ -59,6 +59,7 @@ import com.android.internal.infra.AndroidFuture;
import java.io.File;
import java.io.FileNotFoundException;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -224,6 +225,7 @@ public abstract class OnDeviceIntelligenceService extends Service {
Bundle bundle = new Bundle();
parcelFileDescriptorMap.forEach(bundle::putParcelable);
remoteCallback.sendResult(bundle);
+ tryClosePfds(parcelFileDescriptorMap.values());
}));
}
@@ -444,6 +446,16 @@ public abstract class OnDeviceIntelligenceService extends Service {
};
}
+ private static void tryClosePfds(Collection<ParcelFileDescriptor> pfds) {
+ pfds.forEach(pfd -> {
+ try {
+ pfd.close();
+ } catch (Exception e) {
+ Log.w(TAG, "Error closing FD", e);
+ }
+ });
+ }
+
private void onGetReadOnlyFileDescriptor(@NonNull String fileName,
@NonNull AndroidFuture<ParcelFileDescriptor> future) {
Slog.v(TAG, "onGetReadOnlyFileDescriptor " + fileName);