log:
2021-06-23 10:13:23.938 15791-16913/org.coming.securesms W/SignalServiceMessageSender: java.util.concurrent.TimeoutException
at org.whispersystems.signalservice.internal.util.concurrent.SettableFuture.get(SettableFuture.java:84)
at org.whispersystems.signalservice.internal.util.concurrent.FutureMapTransformer.get(FutureMapTransformer.java:66)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessageForAlert(SignalServiceMessageSender.java:1520)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.lambda$sendMessage$2$SignalServiceMessageSender(SignalServiceMessageSender.java:1422)
at org.whispersystems.signalservice.api.-$$Lambda$SignalServiceMessageSender$JZPa8IUxGdbbapeyvUxJqYLW5Pw.call(Unknown Source:16)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:923)
2021-06-23 10:13:23.938 15791-16913/org.coming.securesms W/SignalServiceMessageSender: [sendMessage] Unidentified pipe failed, falling back...
2021-06-23 10:13:24.700 15791-16913/org.coming.securesms I/PushServiceSocket: responseCode=401 ,responseMessage=Unauthorized
2021-06-23 10:13:24.702 15791-16913/org.coming.securesms W/SignalServiceMessageSender: org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException: Authorization failed!
at org.whispersystems.signalservice.internal.push.PushServiceSocket.validateServiceResponse(PushServiceSocket.java:1832)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1711)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceBodyRequest(PushServiceSocket.java:1696)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1544)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1538)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.sendMessage(PushServiceSocket.java:461)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessageForAlert(SignalServiceMessageSender.java:1532)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.lambda$sendMessage$2$SignalServiceMessageSender(SignalServiceMessageSender.java:1422)
at org.whispersystems.signalservice.api.-$$Lambda$SignalServiceMessageSender$JZPa8IUxGdbbapeyvUxJqYLW5Pw.call(Unknown Source:16)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:923)
log:
2021-06-23 10:13:33.513 15791-15855/org.coming.securesms W/SignalServiceMessageSender: java.util.concurrent.TimeoutException
at org.whispersystems.signalservice.internal.util.concurrent.SettableFuture.get(SettableFuture.java:84)
at org.whispersystems.signalservice.internal.util.concurrent.FutureMapTransformer.get(FutureMapTransformer.java:66)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessageForAlert(SignalServiceMessageSender.java:1520)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessage(SignalServiceMessageSender.java:1566)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessage(SignalServiceMessageSender.java:287)
at org.securesms.jobs.PushTextSendJob.deliver(PushTextSendJob.java:182)
at org.securesms.jobs.PushTextSendJob.onPushSend(PushTextSendJob.java:94)
at org.securesms.jobs.PushSendJob.onSend(PushSendJob.java:112)
at org.securesms.jobs.SendJob.onRun(SendJob.java:42)
at org.securesms.jobs.BaseJob.run(BaseJob.java:32)
at org.securesms.jobmanager.JobRunner.run(JobRunner.java:86)
at org.securesms.jobmanager.JobRunner.run(JobRunner.java:49)
2021-06-23 10:13:33.513 15791-15855/org.coming.securesms W/SignalServiceMessageSender: [sendMessage] Unidentified pipe failed, falling back...
2021-06-23 10:13:33.514 15791-15855/org.coming.securesms D/PushServiceSocket: Push service URL: https://coming-server-v2-pre.coming.chat
2021-06-23 10:13:33.514 15791-15855/org.coming.securesms D/PushServiceSocket: Opening URL: https://coming-server-v2-pre.coming.chat/v1/messages/04c7e509-3388-4a1d-8f5e-e31c4b56faa7
2021-06-23 10:13:34.269 15791-15855/org.coming.securesms I/PushServiceSocket: responseCode=401 ,responseMessage=Unauthorized
2021-06-23 10:13:34.270 15791-15855/org.coming.securesms W/SignalServiceMessageSender: org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException: Authorization failed!
at org.whispersystems.signalservice.internal.push.PushServiceSocket.validateServiceResponse(PushServiceSocket.java:1832)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1711)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceBodyRequest(PushServiceSocket.java:1696)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1544)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1538)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.sendMessage(PushServiceSocket.java:461)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessageForAlert(SignalServiceMessageSender.java:1532)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessage(SignalServiceMessageSender.java:1566)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessage(SignalServiceMessageSender.java:287)
at org.securesms.jobs.PushTextSendJob.deliver(PushTextSendJob.java:182)
at org.securesms.jobs.PushTextSendJob.onPushSend(PushTextSendJob.java:94)
at org.securesms.jobs.PushSendJob.onSend(PushSendJob.java:112)
at org.securesms.jobs.SendJob.onRun(SendJob.java:42)
at org.securesms.jobs.BaseJob.run(BaseJob.java:32)
at org.securesms.jobmanager.JobRunner.run(JobRunner.java:86)
at org.securesms.jobmanager.JobRunner.run(JobRunner.java:49)
2021-06-23 10:13:34.747 15791-16913/org.coming.securesms W/SignalServiceMessageSender: java.util.concurrent.TimeoutException
at org.whispersystems.signalservice.internal.util.concurrent.SettableFuture.get(SettableFuture.java:84)
at org.whispersystems.signalservice.internal.util.concurrent.FutureMapTransformer.get(FutureMapTransformer.java:66)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessageForAlert(SignalServiceMessageSender.java:1512)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.lambda$sendMessage$2$SignalServiceMessageSender(SignalServiceMessageSender.java:1422)
at org.whispersystems.signalservice.api.-$$Lambda$SignalServiceMessageSender$JZPa8IUxGdbbapeyvUxJqYLW5Pw.call(Unknown Source:16)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:923)
2021-06-23 10:13:34.747 15791-16913/org.coming.securesms W/SignalServiceMessageSender: [sendMessage] Pipe failed, falling back...
2021-06-23 10:13:34.748 15791-16913/org.coming.securesms D/PushServiceSocket: Push service URL: https://coming-server-v2-pre.coming.chat
2021-06-23 10:13:34.748 15791-16913/org.coming.securesms D/PushServiceSocket: Opening URL: https://coming-server-v2-pre.coming.chat/v1/messages/04c7e509-3388-4a1d-8f5e-e31c4b56faa7
2021-06-23 10:13:35.509 15791-16913/org.coming.securesms I/PushServiceSocket: responseCode=401 ,responseMessage=Unauthorized
2021-06-23 10:13:35.511 15791-16913/org.coming.securesms W/SignalServiceMessageSender: org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException: Authorization failed!
at org.whispersystems.signalservice.internal.push.PushServiceSocket.validateServiceResponse(PushServiceSocket.java:1832)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1711)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceBodyRequest(PushServiceSocket.java:1696)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1544)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1538)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.sendMessage(PushServiceSocket.java:461)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessageForAlert(SignalServiceMessageSender.java:1532)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.lambda$sendMessage$2$SignalServiceMessageSender(SignalServiceMessageSender.java:1422)
at org.whispersystems.signalservice.api.-$$Lambda$SignalServiceMessageSender$JZPa8IUxGdbbapeyvUxJqYLW5Pw.call(Unknown Source:16)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:923)
2021-06-23 10:13:35.514 15791-15857/org.coming.securesms W/BaseJob: [JOB::7562ad4b-a9a2-4c99-9b06-f060e0354d56][TypingSendJob] Encountered a failing exception. (Time Since Submission: 21599 ms, Lifespan: 5000 ms, Run Attempt: 1/1)
java.io.IOException: java.util.concurrent.ExecutionException: org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException: Authorization failed!
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessage(SignalServiceMessageSender.java:1449)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendTyping(SignalServiceMessageSender.java:238)
at org.securesms.jobs.TypingSendJob.onRun(TypingSendJob.java:137)
at org.securesms.jobs.BaseJob.run(BaseJob.java:32)
at org.securesms.jobmanager.JobRunner.run(JobRunner.java:86)
at org.securesms.jobmanager.JobRunner.run(JobRunner.java:49)
Caused by: java.util.concurrent.ExecutionException: org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException: Authorization failed!
at java.util.concurrent.FutureTask.report(FutureTask.java:123)
at java.util.concurrent.FutureTask.get(FutureTask.java:193)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessage(SignalServiceMessageSender.java:1431)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendTyping(SignalServiceMessageSender.java:238)
at org.securesms.jobs.TypingSendJob.onRun(TypingSendJob.java:137)
at org.securesms.jobs.BaseJob.run(BaseJob.java:32)
at org.securesms.jobmanager.JobRunner.run(JobRunner.java:86)
at org.securesms.jobmanager.JobRunner.run(JobRunner.java:49)
Caused by: org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException: Authorization failed!
at org.whispersystems.signalservice.internal.push.PushServiceSocket.validateServiceResponse(PushServiceSocket.java:1832)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1711)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceBodyRequest(PushServiceSocket.java:1696)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1544)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1538)
at org.whispersystems.signalservice.internal.push.PushServiceSocket.sendMessage(PushServiceSocket.java:461)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.sendMessageForAlert(SignalServiceMessageSender.java:1532)
at org.whispersystems.signalservice.api.SignalServiceMessageSender.lambda$sendMessage$2$SignalServiceMessageSender(SignalServiceMessageSender.java:1422)
at org.whispersystems.signalservice.api.-$$Lambda$SignalServiceMessageSender$JZPa8IUxGdbbapeyvUxJqYLW5Pw.call(Unknown Source:16)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:923)
2021-06-23 10:13:35.517 15791-15857/org.coming.securesms W/JobRunner: [JOB::7562ad4b-a9a2-4c99-9b06-f060e0354d56][TypingSendJob][4] Job failed. (Time Since Submission: 21603 ms, Lifespan: 5000 ms, Run Attempt: 1/1)
点击按钮发送一次消息就是往JobManager(线程池)里面放入一个PushSendJob,一个PushSendJob会分配一个JobRunner(线程)执行,一个PushSendJob发送失败时,并不会将这个PushSendJob移除,而是每隔1秒会继续执行发送消息的onPushSend()方法(ui上消息会一直转圈圈),直到发送成功(这时消息才不会转圈圈)。
/**
* Allows the scheduling of durable jobs that will be run as early as possible.
*/
public class JobManager implements ConstraintObserver.Notifier {
private static final String TAG = Log.tag(JobManager.class);
public static final int CURRENT_VERSION = 8;
private final Application application;
private final Configuration configuration;
private final Executor executor;
private final JobController jobController;
private final JobTracker jobTracker;
...
}
class JobRunner extends Thread {
...
}