Używam biblioteki Square's Tape do kolejkowania przesyłania danych na serwer.Wykrywanie EOFException podczas odczytu taśmy QueueFile
Kolejka jest przechowywana w pliku w formacie JSON. Po uruchomieniu aplikacji uruchamiam kolejkę i zaczynam ładować (np. W przypadku Wi-Fi), ale na niektórych urządzeniach na stronie widzę komunikat EOFException
z komunikatem 'null'
(zaloguj się crashlytics).
Błąd pojawia się podczas tworzenia obiektu FileObjectQueue
z istniejącego pliku - z informacji debugujących należy się dowiedzieć, że rzeczywisty plik ma rozmiar ~ 1MB.
Jakieś pomysły, co to powoduje lub jak temu zapobiegać? - może muszę odkurzyć na moim java.io.
Edit: za pomocą taśmy v1.2.1
Caused by: java.io.EOFException
at java.io.RandomAccessFile.readFully(RandomAccessFile.java:419)
at java.io.RandomAccessFile.readInt(RandomAccessFile.java:439)
at com.squareup.tape.QueueFile.readElement(:182)
at com.squareup.tape.QueueFile.readHeader(:162)
at com.squareup.tape.QueueFile.(:110)
at com.squareup.tape.FileObjectQueue.(:35)
at com.myapp.queue.MyUploadTaskQueue.create(:125)
Updated - Także widząc ten błąd ponieważ uaktualnieniu do 1.2.2
Caused by: java.io.IOException: File is corrupt; length stored in header is 0.
at com.squareup.tape.QueueFile.readHeader(:165)
at com.squareup.tape.QueueFile.<init>(:117)
at com.squareup.tape.FileObjectQueue.<init>(:35)
Jakiej wersji biblioteki używasz? –
Hej Jake, używając Tape v1.2.1 (zaktualizowany w pytaniu), ale po prostu sprawdzając dziennik zmian widzę być może poprawioną "Zapobiegaj uszkodzeniom podczas rozszerzania idealnie nasyconej kolejki", więc spróbuję 1.2.2. thx – scottyab
Cool. Właśnie dlatego poprosiłem! –