NaikSoftware / StompProtocolAndroid

STOMP protocol via WebSocket for Android
MIT License
589 stars 265 forks source link

NoSuchElementException crash #164

Open Amrsatrio opened 4 years ago

Amrsatrio commented 4 years ago

This happened when I was getting a lot of messages from the server. I will post the payload once I'm able to reproduce it.

FATAL EXCEPTION: OkHttp https://notifications-service-prod06.ol.epicgames.com/...
Process: com.tb24.fn, PID: 6732
io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.util.NoSuchElementException
       at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
       at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
       at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)
       at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
       at io.reactivex.internal.operators.observable.ObservableDoOnEach$DoOnEachObserver.onError(ObservableDoOnEach.java:117)
       at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
       at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
       at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
       at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
       at io.reactivex.internal.operators.observable.ObservableConcatMap$ConcatMapDelayErrorObserver$DelayErrorInnerObserver.onNext(ObservableConcatMap.java:506)
       at io.reactivex.subjects.PublishSubject$PublishDisposable.onNext(PublishSubject.java:308)
       at io.reactivex.subjects.PublishSubject.onNext(PublishSubject.java:228)
       at ua.naiksoftware.stomp.provider.AbstractConnectionProvider.emitMessage(AbstractConnectionProvider.java:117)
       at ua.naiksoftware.stomp.provider.OkHttpConnectionProvider$1.onMessage(OkHttpConnectionProvider.java:67)
       at okhttp3.internal.ws.RealWebSocket.onReadMessage(RealWebSocket.java:323)
       at okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.java:219)
       at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:105)
       at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
       at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
       at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
       at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
       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:919)
Caused by: java.util.NoSuchElementException
       at java.util.Scanner.skip(Scanner.java:1755)
       at java.util.Scanner.skip(Scanner.java:1772)
       at ua.naiksoftware.stomp.dto.StompMessage.from(StompMessage.java:89)
       at ua.naiksoftware.stomp.-$$Lambda$Efbvy_1p5sTPPPDEnvuVVjpFgeg.apply(Unknown Source:2)
       at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
       ... 15 more
Amrsatrio commented 4 years ago

Here's the log with the payload as promised:

2020-03-09 21:49:48.038 D/StompClient: Socket closed with error
2020-03-09 21:49:48.039 I/LogProfileSys: STOMP closed, reconnecting
2020-03-09 21:49:48.041 D/StompClient: Socket closed
2020-03-09 21:49:48.042 D/StompClient: Stomp disconnected
2020-03-09 21:49:48.043 D/StompClient: Unsubscribe path: /topic/fn/profile/bd7021824e39499d8be7936cf1e1189d/fortnite id: 48f0d0ae-ed84-4531-a848-cb1f7da86d1e
2020-03-09 21:49:58.042 D/StompClient: Stomp disconnected
2020-03-09 21:49:58.045 D/StompClient: Connect
2020-03-09 21:49:59.432 D/AbstractConnectionProvider: Send STOMP message: CONNECT
    accept-version:1.1,1.2
    heart-beat:30000,0
    login:bd7021824e39499d8be7936cf1e1189d
    passcode:[REDACTED]

    ��
2020-03-09 21:49:59.433 D/StompClient: Publish open
2020-03-09 21:49:59.760 D/AbstractConnectionProvider: Receive STOMP message: ERROR
    content-type:text/plain
    content-length:0
    message: Unknown Server Error Authenticating.

    ��
2020-03-09 21:49:59.772 W/System.err:     at ua.naiksoftware.stomp.provider.AbstractConnectionProvider.emitMessage(AbstractConnectionProvider.java:117)
2020-03-09 21:49:59.772 W/System.err:     at ua.naiksoftware.stomp.provider.OkHttpConnectionProvider$1.onMessage(OkHttpConnectionProvider.java:67)
2020-03-09 21:49:59.794 W/System.err:     at ua.naiksoftware.stomp.dto.StompMessage.from(StompMessage.java:89)
2020-03-09 21:49:59.794 W/System.err:     at ua.naiksoftware.stomp.-$$Lambda$Efbvy_1p5sTPPPDEnvuVVjpFgeg.apply(Unknown Source:2)
2020-03-09 21:49:59.830 E/AndroidRuntime: FATAL EXCEPTION: OkHttp https://notifications-service-prod06.ol.epicgames.com/...
    Process: com.tb24.fn, PID: 5040
    io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.util.NoSuchElementException
        at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
        at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
        at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)
        at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
        at io.reactivex.internal.operators.observable.ObservableDoOnEach$DoOnEachObserver.onError(ObservableDoOnEach.java:117)
        at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
        at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
        at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
        at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
        at io.reactivex.internal.operators.observable.ObservableConcatMap$ConcatMapDelayErrorObserver$DelayErrorInnerObserver.onNext(ObservableConcatMap.java:506)
        at io.reactivex.subjects.PublishSubject$PublishDisposable.onNext(PublishSubject.java:308)
        at io.reactivex.subjects.PublishSubject.onNext(PublishSubject.java:228)
        at ua.naiksoftware.stomp.provider.AbstractConnectionProvider.emitMessage(AbstractConnectionProvider.java:117)
        at ua.naiksoftware.stomp.provider.OkHttpConnectionProvider$1.onMessage(OkHttpConnectionProvider.java:67)
        at okhttp3.internal.ws.RealWebSocket.onReadMessage(RealWebSocket.java:323)
        at okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.java:219)
        at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:105)
        at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
        at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
        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:919)
     Caused by: java.util.NoSuchElementException
        at java.util.Scanner.skip(Scanner.java:1755)
        at java.util.Scanner.skip(Scanner.java:1772)
        at ua.naiksoftware.stomp.dto.StompMessage.from(StompMessage.java:89)
        at ua.naiksoftware.stomp.-$$Lambda$Efbvy_1p5sTPPPDEnvuVVjpFgeg.apply(Unknown Source:2)
        at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
        at io.reactivex.internal.operators.observable.ObservableConcatMap$ConcatMapDelayErrorObserver$DelayErrorInnerObserver.onNext(ObservableConcatMap.java:506) 
        at io.reactivex.subjects.PublishSubject$PublishDisposable.onNext(PublishSubject.java:308) 
        at io.reactivex.subjects.PublishSubject.onNext(PublishSubject.java:228) 
        at ua.naiksoftware.stomp.provider.AbstractConnectionProvider.emitMessage(AbstractConnectionProvider.java:117) 
        at ua.naiksoftware.stomp.provider.OkHttpConnectionProvider$1.onMessage(OkHttpConnectionProvider.java:67) 
        at okhttp3.internal.ws.RealWebSocket.onReadMessage(RealWebSocket.java:323) 
        at okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.java:219) 
        at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:105) 
        at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274) 
        at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214) 
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206) 
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 
        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:919) 
marain87 commented 4 years ago

156 This may help you

mx-sahilk commented 2 years ago

It was happening to me also, after some time I figures out that the queue to which I am subscribed contains space. eg /app/lounges/main screen