Skip to content

Handle java.lang.IllegalStateException properly #2363

@ChangshinLee-NBT

Description

@ChangshinLee-NBT

I'm currently using gRPC on Android, and it crashes due to the following exceptions:

Case 1:

Fatal Exception: java.lang.IllegalStateException: activeTransport still points to the delayedTransport. Seems transportShutdown() was not called.
       at com.google.common.base.Preconditions.checkState(Preconditions.java:174)
       at io.grpc.internal.TransportSet$TransportListener.transportTerminated(TransportSet.java:495)
       at io.grpc.okhttp.OkHttpClientTransport$ClientFrameHandler.run(OkHttpClientTransport.java:759)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

Case 2:

Fatal Exception: java.lang.IllegalStateException
       at com.google.common.base.Preconditions.checkState(Preconditions.java:159)
       at io.grpc.internal.DelayedClientTransport.startBackoff(DelayedClientTransport.java:324)
       at io.grpc.internal.TransportSet$2.run(TransportSet.java:297)
       at io.grpc.internal.TransportSet$TransportListener.transportShutdown(TransportSet.java:477)
       at io.grpc.okhttp.OkHttpClientTransport.startGoAway(OkHttpClientTransport.java:568)
       at io.grpc.okhttp.OkHttpClientTransport.access$1400(OkHttpClientTransport.java:98)
       at io.grpc.okhttp.OkHttpClientTransport$ClientFrameHandler.run(OkHttpClientTransport.java:752)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

Is there any way to handle these exceptions before crashing?

Thanks in advance.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions