Merge "transcoding: Do not throw exception in registerClient." into sc-dev
diff --git a/apex/media/framework/java/android/media/MediaTranscodeManager.java b/apex/media/framework/java/android/media/MediaTranscodeManager.java
index c924d9a..ca5aeb8 100644
--- a/apex/media/framework/java/android/media/MediaTranscodeManager.java
+++ b/apex/media/framework/java/android/media/MediaTranscodeManager.java
@@ -295,8 +295,8 @@
/* ignore */
}
}
-
- throw new UnsupportedOperationException("Failed to connect to MediaTranscoding service");
+ Log.w(TAG, "Failed to get service");
+ return null;
}
/*
@@ -463,8 +463,7 @@
}
};
- private ITranscodingClient registerClient(IMediaTranscodingService service)
- throws UnsupportedOperationException {
+ private ITranscodingClient registerClient(IMediaTranscodingService service) {
synchronized (mLock) {
try {
// Registers the client with MediaTranscoding service.
@@ -476,13 +475,12 @@
if (mTranscodingClient != null) {
mTranscodingClient.asBinder().linkToDeath(() -> onClientDied(), /* flags */ 0);
}
- return mTranscodingClient;
- } catch (RemoteException re) {
- Log.e(TAG, "Failed to register new client due to exception " + re);
+ } catch (Exception ex) {
+ Log.e(TAG, "Failed to register new client due to exception " + ex);
mTranscodingClient = null;
}
}
- throw new UnsupportedOperationException("Failed to register new client");
+ return mTranscodingClient;
}
/**
@@ -495,7 +493,9 @@
mUid = Os.getuid();
mPid = Os.getpid();
IMediaTranscodingService service = getService(false /*retry*/);
- mTranscodingClient = registerClient(service);
+ if (service != null) {
+ mTranscodingClient = registerClient(service);
+ }
}
public static final class TranscodingRequest {
@@ -1567,6 +1567,10 @@
if (mTranscodingClient == null) {
// Try to register with the service again.
IMediaTranscodingService service = getService(false /*retry*/);
+ if (service == null) {
+ throw new MediaTranscodingException.ServiceNotAvailableException(
+ "Service rebooting. Try again later");
+ }
mTranscodingClient = registerClient(service);
// If still fails, throws an exception to tell client to try later.
if (mTranscodingClient == null) {