glide icon indicating copy to clipboard operation
glide copied to clipboard

It load image failed when I use 'DiskCacheStrategy.RESOURCE' mode.

Open qianshui423 opened this issue 3 years ago • 3 comments
trafficstars

Glide Version:4.11.0

Integration libraries:okhttp 4.8.0、okio 2.7.0

Device/Android Version:Xiaomi 10 Pro/Android 11

Issue details / Repro steps / Use case background: It load image failed when I use 'DiskCacheStrategy.RESOURCE' mode.

Glide load line / GlideModule (if any) / list Adapter code (if any):

Glide.with(fragment).load(imageUrl)
                    .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                    .into(imageView);

Layout XML:

<ImageView
                android:id="@+id/iv_sample"
                android:layout_width="194dp"
                android:layout_height="33dp"
                android:scaleType="fitXY" />

Stack trace / LogCat:

2022-01-28 16:40:50.822 14062-14062/com.xxx W/Glide: Load failed for https://xxx.png with size [1080x127]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource
    There were 5 causes:
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
     call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ContentLengthInputStream->Object->Drawable}, REMOTE
    There were 5 causes:
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
     call GlideException#logRootCauses(String) for more detail
        Cause (1 of 4): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ContentLengthInputStream->Drawable->Drawable}
    There were 2 causes:
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
     call GlideException#logRootCauses(String) for more detail
          Cause (1 of 2): class java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
          Cause (2 of 2): class java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
        Cause (2 of 4): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ContentLengthInputStream->GifDrawable->Drawable}
    There was 1 cause:
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
     call GlideException#logRootCauses(String) for more detail
          Cause (1 of 1): class java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
        Cause (3 of 4): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ContentLengthInputStream->Bitmap->Drawable}
    There was 1 cause:
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
     call GlideException#logRootCauses(String) for more detail
          Cause (1 of 1): class java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
        Cause (4 of 4): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ContentLengthInputStream->BitmapDrawable->Drawable}
    There was 1 cause:
    java.io.IOException(Failed to read all expected data, expected: 65815, but read: 23796)
     call GlideException#logRootCauses(String) for more detail
          Cause (1 of 1): class java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
2022-01-28 16:40:50.822 14062-14062/com.xxx I/Glide: Root cause (1 of 5)
    java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
        at com.bumptech.glide.util.ContentLengthInputStream.checkReadSoFarOrThrow(ContentLengthInputStream.java:78)
        at com.bumptech.glide.util.ContentLengthInputStream.read(ContentLengthInputStream.java:71)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:173)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:230)
        at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser$StreamReader.getUInt8(DefaultImageHeaderParser.java:506)
        at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser$StreamReader.getUInt16(DefaultImageHeaderParser.java:516)
        at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser.getType(DefaultImageHeaderParser.java:89)
        at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser.getType(DefaultImageHeaderParser.java:61)
        at com.bumptech.glide.load.ImageHeaderParserUtils$1.getType(ImageHeaderParserUtils.java:48)
        at com.bumptech.glide.load.ImageHeaderParserUtils.getTypeInternal(ImageHeaderParserUtils.java:117)
        at com.bumptech.glide.load.ImageHeaderParserUtils.getType(ImageHeaderParserUtils.java:42)
        at com.bumptech.glide.load.resource.gif.StreamGifDecoder.handles(StreamGifDecoder.java:42)
        at com.bumptech.glide.load.resource.gif.StreamGifDecoder.handles(StreamGifDecoder.java:23)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:90)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:70)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:59)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:76)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:57)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:524)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:488)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:474)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:426)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:390)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataReadyInternal(SourceGenerator.java:148)
        at com.bumptech.glide.load.engine.SourceGenerator$1.onDataReady(SourceGenerator.java:76)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onDataReady(MultiModelLoader.java:145)
        at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:57)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100)
        at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:70)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:63)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:279)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)
        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)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:393)
2022-01-28 16:40:50.823 14062-14062/com.xxx I/Glide: Root cause (2 of 5)
    java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
        at com.bumptech.glide.util.ContentLengthInputStream.checkReadSoFarOrThrow(ContentLengthInputStream.java:78)
        at com.bumptech.glide.util.ContentLengthInputStream.read(ContentLengthInputStream.java:71)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:173)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:305)
        at com.bumptech.glide.util.ExceptionCatchingInputStream.read(ExceptionCatchingInputStream.java:88)
        at java.io.FilterInputStream.read(FilterInputStream.java:133)
        at com.bumptech.glide.util.MarkEnforcingInputStream.read(MarkEnforcingInputStream.java:46)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:173)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:305)
        at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
        at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:790)
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:765)
        at com.bumptech.glide.load.resource.bitmap.ImageReader$InputStreamImageReader.decodeBitmap(ImageReader.java:50)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeStream(Downsampler.java:742)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeFromWrappedStreams(Downsampler.java:390)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:248)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:207)
        at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:62)
        at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:18)
        at com.bumptech.glide.load.resource.bitmap.BitmapDrawableDecoder.decode(BitmapDrawableDecoder.java:58)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:92)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:70)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:59)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:76)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:57)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:524)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:488)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:474)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:426)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:390)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataReadyInternal(SourceGenerator.java:148)
        at com.bumptech.glide.load.engine.SourceGenerator$1.onDataReady(SourceGenerator.java:76)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onDataReady(MultiModelLoader.java:145)
        at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:57)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100)
        at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:70)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:63)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:279)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)
        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)
2022-01-28 16:40:50.823 14062-14062/com.xxx I/Glide:     at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:393)
2022-01-28 16:40:50.823 14062-14062/com.xxx I/Glide: Root cause (3 of 5)
    java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
        at com.bumptech.glide.util.ContentLengthInputStream.checkReadSoFarOrThrow(ContentLengthInputStream.java:78)
        at com.bumptech.glide.util.ContentLengthInputStream.read(ContentLengthInputStream.java:71)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:173)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:230)
        at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser$StreamReader.getUInt8(DefaultImageHeaderParser.java:506)
        at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser$StreamReader.getUInt16(DefaultImageHeaderParser.java:516)
        at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser.getType(DefaultImageHeaderParser.java:89)
        at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser.getType(DefaultImageHeaderParser.java:61)
        at com.bumptech.glide.load.ImageHeaderParserUtils$1.getType(ImageHeaderParserUtils.java:48)
        at com.bumptech.glide.load.ImageHeaderParserUtils.getTypeInternal(ImageHeaderParserUtils.java:117)
        at com.bumptech.glide.load.ImageHeaderParserUtils.getType(ImageHeaderParserUtils.java:42)
        at com.bumptech.glide.load.resource.gif.StreamGifDecoder.handles(StreamGifDecoder.java:42)
        at com.bumptech.glide.load.resource.gif.StreamGifDecoder.handles(StreamGifDecoder.java:23)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:90)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:70)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:59)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:76)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:57)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:524)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:488)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:474)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:426)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:390)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataReadyInternal(SourceGenerator.java:148)
        at com.bumptech.glide.load.engine.SourceGenerator$1.onDataReady(SourceGenerator.java:76)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onDataReady(MultiModelLoader.java:145)
        at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:57)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100)
        at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:70)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:63)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:279)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)
        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)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:393)
2022-01-28 16:40:50.823 14062-14062/com.xxx I/Glide: Root cause (4 of 5)
    java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
        at com.bumptech.glide.util.ContentLengthInputStream.checkReadSoFarOrThrow(ContentLengthInputStream.java:78)
        at com.bumptech.glide.util.ContentLengthInputStream.read(ContentLengthInputStream.java:71)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:173)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:305)
        at com.bumptech.glide.util.ExceptionCatchingInputStream.read(ExceptionCatchingInputStream.java:88)
        at java.io.FilterInputStream.read(FilterInputStream.java:133)
        at com.bumptech.glide.util.MarkEnforcingInputStream.read(MarkEnforcingInputStream.java:46)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:173)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:305)
        at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
        at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:790)
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:765)
        at com.bumptech.glide.load.resource.bitmap.ImageReader$InputStreamImageReader.decodeBitmap(ImageReader.java:50)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeStream(Downsampler.java:742)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeFromWrappedStreams(Downsampler.java:390)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:248)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:207)
        at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:62)
        at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:18)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:92)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:70)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:59)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:76)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:57)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:524)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:488)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:474)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:426)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:390)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataReadyInternal(SourceGenerator.java:148)
        at com.bumptech.glide.load.engine.SourceGenerator$1.onDataReady(SourceGenerator.java:76)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onDataReady(MultiModelLoader.java:145)
        at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:57)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100)
        at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:70)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:63)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:279)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)
        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)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:393)
2022-01-28 16:40:50.824 14062-14062/com.xxx I/Glide: Root cause (5 of 5)
    java.io.IOException: Failed to read all expected data, expected: 65815, but read: 23796
        at com.bumptech.glide.util.ContentLengthInputStream.checkReadSoFarOrThrow(ContentLengthInputStream.java:78)
        at com.bumptech.glide.util.ContentLengthInputStream.read(ContentLengthInputStream.java:71)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:173)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:305)
        at com.bumptech.glide.util.ExceptionCatchingInputStream.read(ExceptionCatchingInputStream.java:88)
        at java.io.FilterInputStream.read(FilterInputStream.java:133)
        at com.bumptech.glide.util.MarkEnforcingInputStream.read(MarkEnforcingInputStream.java:46)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.fillbuf(RecyclableBufferedInputStream.java:173)
        at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.read(RecyclableBufferedInputStream.java:305)
        at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
        at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:790)
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:765)
        at com.bumptech.glide.load.resource.bitmap.ImageReader$InputStreamImageReader.decodeBitmap(ImageReader.java:50)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeStream(Downsampler.java:742)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeFromWrappedStreams(Downsampler.java:390)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:248)
        at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:207)
        at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:62)
        at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:18)
        at com.bumptech.glide.load.resource.bitmap.BitmapDrawableDecoder.decode(BitmapDrawableDecoder.java:58)
        at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:92)
        at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:70)
        at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:59)
        at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:76)
        at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:57)
        at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:524)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:488)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:474)
        at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:426)
        at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:390)
        at com.bumptech.glide.load.engine.SourceGenerator.onDataReadyInternal(SourceGenerator.java:148)
        at com.bumptech.glide.load.engine.SourceGenerator$1.onDataReady(SourceGenerator.java:76)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onDataReady(MultiModelLoader.java:145)
        at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:57)
        at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100)
        at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:70)
        at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:63)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:279)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)
        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)

qianshui423 avatar Jan 28 '22 08:01 qianshui423

I find RecyclableBufferedInputStream's skip() method has a bug while parameter byteCount > buffer's remain count. follow:

RecyclableBufferedInputStream class's 391 line, comment content: '// Couldn't get all the bytes, skip what we read.'

qianshui423 avatar Jan 28 '22 13:01 qianshui423

I'd welcome a fix, or a sample project/unit test where I can reproduce this. It seems like the error must be deeper in in the stream, fillBuff is failing to read the required data?

sjudd avatar Feb 23 '22 01:02 sjudd

I got same issue. When change 'DiskCacheStrategy.RESOURCE' to 'DiskCacheStrategy.ALL' thIs issue not occur but it will make some side effect for my application. Please help to check this.

Truvuongss avatar Apr 15 '22 00:04 Truvuongss