GoogleCloudPlatform / android-docs-samples

Apache License 2.0
375 stars 596 forks source link

[SpeechRecognitionClient] Sometimes crashes if we use mSpeechClient?.shutdown() #123

Open antranvn opened 4 years ago

antranvn commented 4 years ago

Sometimes, we have crashed when using mSpeechClient?.shutdown(). The details log:

java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@fd8f90 rejected from java.util.concurrent.ScheduledThreadPoolExecutor@25a7a53[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 4]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2085)
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:848)
        at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:334)
        at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:562)
        at java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:654)
        at io.grpc.internal.SerializingExecutor.schedule(SerializingExecutor.java:93)
        at io.grpc.internal.SerializingExecutor.execute(SerializingExecutor.java:86)
        at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.closedInternal(ClientCallImpl.java:755)
        at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.closed(ClientCallImpl.java:705)
        at io.grpc.internal.DelayedStream$DelayedStreamListener$5.run(DelayedStream.java:475)
        at io.grpc.internal.DelayedStream$DelayedStreamListener.delayOrExecute(DelayedStream.java:417)
        at io.grpc.internal.DelayedStream$DelayedStreamListener.closed(DelayedStream.java:472)
        at io.grpc.internal.ForwardingClientStreamListener.closed(ForwardingClientStreamListener.java:39)
        at io.grpc.internal.InternalSubchannel$CallTracingTransport$1$1.closed(InternalSubchannel.java:661)
        at io.grpc.internal.AbstractClientStream$TransportState.closeListener(AbstractClientStream.java:471)
        at io.grpc.internal.AbstractClientStream$TransportState.access$400(AbstractClientStream.java:233)
        at io.grpc.internal.AbstractClientStream$TransportState$1.run(AbstractClientStream.java:454)
        at io.grpc.internal.AbstractClientStream$TransportState.deframerClosed(AbstractClientStream.java:290)
        at io.grpc.internal.Http2ClientStreamTransportState.deframerClosed(Http2ClientStreamTransportState.java:31)
        at io.grpc.okhttp.OkHttpClientStream$TransportState.deframerClosed(OkHttpClientStream.java:316)
        at io.grpc.internal.MessageDeframer.close(MessageDeframer.java:229)
        at io.grpc.internal.MessageDeframer.closeWhenComplete(MessageDeframer.java:191)
        at io.grpc.internal.AbstractStream$TransportState.closeDeframer(AbstractStream.java:183)
        at io.grpc.internal.AbstractClientStream$TransportState.transportReportStatus(AbstractClientStream.java:457)
        at io.grpc.okhttp.OkHttpClientTransport.startGoAway(OkHttpClientTransport.java:886)
        at io.grpc.okhttp.OkHttpClientTransport.access$1600(OkHttpClientTransport.java:108)
        at io.grpc.okhttp.OkHttpClientTransport$ClientFrameHandler.run(OkHttpClientTransport.java:1112)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)