Deprecate FileUtils.closeQuietly

This API encourages swallowing errors, and the code to implement it is trivial if apps still want to do it themselves.
Guava's reasoning on deprecating their version of this API:
https://github.com/google/guava/issues/1118

Test: No behavior changes
Bug: 144042891
Change-Id: Ic4cfb7366c65d49c355479f420d9ba4fc1b3f053
This commit is contained in:
Charles Munger
2019-11-15 12:55:55 -08:00
parent 8e54615a36
commit 219e986e29
2 changed files with 14 additions and 2 deletions

View File

@@ -34533,8 +34533,8 @@ package android.os {
}
public final class FileUtils {
method public static void closeQuietly(@Nullable AutoCloseable);
method public static void closeQuietly(@Nullable java.io.FileDescriptor);
method @Deprecated public static void closeQuietly(@Nullable AutoCloseable);
method @Deprecated public static void closeQuietly(@Nullable java.io.FileDescriptor);
method public static long copy(@NonNull java.io.InputStream, @NonNull java.io.OutputStream) throws java.io.IOException;
method public static long copy(@NonNull java.io.InputStream, @NonNull java.io.OutputStream, @Nullable android.os.CancellationSignal, @Nullable java.util.concurrent.Executor, @Nullable android.os.FileUtils.ProgressListener) throws java.io.IOException;
method public static long copy(@NonNull java.io.FileDescriptor, @NonNull java.io.FileDescriptor) throws java.io.IOException;

View File

@@ -1275,7 +1275,13 @@ public final class FileUtils {
/**
* Closes the given object quietly, ignoring any checked exceptions. Does
* nothing if the given object is {@code null}.
*
* @deprecated This method may suppress potentially significant exceptions, particularly when
* closing writable resources. With a writable resource, a failure thrown from {@code close()}
* should be considered as significant as a failure thrown from a write method because it may
* indicate a failure to flush bytes to the underlying resource.
*/
@Deprecated
public static void closeQuietly(@Nullable AutoCloseable closeable) {
IoUtils.closeQuietly(closeable);
}
@@ -1283,7 +1289,13 @@ public final class FileUtils {
/**
* Closes the given object quietly, ignoring any checked exceptions. Does
* nothing if the given object is {@code null}.
*
* @deprecated This method may suppress potentially significant exceptions, particularly when
* closing writable resources. With a writable resource, a failure thrown from {@code close()}
* should be considered as significant as a failure thrown from a write method because it may
* indicate a failure to flush bytes to the underlying resource.
*/
@Deprecated
public static void closeQuietly(@Nullable FileDescriptor fd) {
IoUtils.closeQuietly(fd);
}