Loading src/com/android/server/telecom/ConnectionServiceWrapper.java +27 −14 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; Loading Loading @@ -1660,14 +1661,20 @@ public class ConnectionServiceWrapper extends ServiceBinder implements } } }; if (mScheduledExecutor != null) { if (mScheduledExecutor != null && !mScheduledExecutor.isShutdown()) { try { // Post cleanup to the executor service and cache the future, // so we can cancel it if needed. ScheduledFuture<?> future = mScheduledExecutor.schedule( r.getRunnableToCancel(),SERVICE_BINDING_TIMEOUT, TimeUnit.MILLISECONDS); r.getRunnableToCancel(),SERVICE_BINDING_TIMEOUT, TimeUnit.MILLISECONDS); mScheduledFutureMap.put(call, future); } catch (RejectedExecutionException e) { Log.e(this, e, "createConference: mScheduledExecutor was " + "already shutdown"); } } else { Log.w(this, "createConference: Scheduled executor is null"); Log.w(this, "createConference: Scheduled executor is null or shutdown"); mAnomalyReporter.reportAnomaly( NULL_SCHEDULED_EXECUTOR_ERROR_UUID, NULL_SCHEDULED_EXECUTOR_ERROR_MSG); Loading Loading @@ -1796,14 +1803,20 @@ public class ConnectionServiceWrapper extends ServiceBinder implements } } }; if (mScheduledExecutor != null) { if (mScheduledExecutor != null && !mScheduledExecutor.isShutdown()) { try { // Post cleanup to the executor service and cache the future, // so we can cancel it if needed. ScheduledFuture<?> future = mScheduledExecutor.schedule( r.getRunnableToCancel(),SERVICE_BINDING_TIMEOUT, TimeUnit.MILLISECONDS); r.getRunnableToCancel(),SERVICE_BINDING_TIMEOUT, TimeUnit.MILLISECONDS); mScheduledFutureMap.put(call, future); } catch (RejectedExecutionException e) { Log.e(this, e, "createConnection: mScheduledExecutor was " + "already shutdown"); } } else { Log.w(this, "createConnection: Scheduled executor is null"); Log.w(this, "createConnection: Scheduled executor is null or shutdown"); mAnomalyReporter.reportAnomaly( NULL_SCHEDULED_EXECUTOR_ERROR_UUID, NULL_SCHEDULED_EXECUTOR_ERROR_MSG); Loading Loading
src/com/android/server/telecom/ConnectionServiceWrapper.java +27 −14 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; Loading Loading @@ -1660,14 +1661,20 @@ public class ConnectionServiceWrapper extends ServiceBinder implements } } }; if (mScheduledExecutor != null) { if (mScheduledExecutor != null && !mScheduledExecutor.isShutdown()) { try { // Post cleanup to the executor service and cache the future, // so we can cancel it if needed. ScheduledFuture<?> future = mScheduledExecutor.schedule( r.getRunnableToCancel(),SERVICE_BINDING_TIMEOUT, TimeUnit.MILLISECONDS); r.getRunnableToCancel(),SERVICE_BINDING_TIMEOUT, TimeUnit.MILLISECONDS); mScheduledFutureMap.put(call, future); } catch (RejectedExecutionException e) { Log.e(this, e, "createConference: mScheduledExecutor was " + "already shutdown"); } } else { Log.w(this, "createConference: Scheduled executor is null"); Log.w(this, "createConference: Scheduled executor is null or shutdown"); mAnomalyReporter.reportAnomaly( NULL_SCHEDULED_EXECUTOR_ERROR_UUID, NULL_SCHEDULED_EXECUTOR_ERROR_MSG); Loading Loading @@ -1796,14 +1803,20 @@ public class ConnectionServiceWrapper extends ServiceBinder implements } } }; if (mScheduledExecutor != null) { if (mScheduledExecutor != null && !mScheduledExecutor.isShutdown()) { try { // Post cleanup to the executor service and cache the future, // so we can cancel it if needed. ScheduledFuture<?> future = mScheduledExecutor.schedule( r.getRunnableToCancel(),SERVICE_BINDING_TIMEOUT, TimeUnit.MILLISECONDS); r.getRunnableToCancel(),SERVICE_BINDING_TIMEOUT, TimeUnit.MILLISECONDS); mScheduledFutureMap.put(call, future); } catch (RejectedExecutionException e) { Log.e(this, e, "createConnection: mScheduledExecutor was " + "already shutdown"); } } else { Log.w(this, "createConnection: Scheduled executor is null"); Log.w(this, "createConnection: Scheduled executor is null or shutdown"); mAnomalyReporter.reportAnomaly( NULL_SCHEDULED_EXECUTOR_ERROR_UUID, NULL_SCHEDULED_EXECUTOR_ERROR_MSG); Loading