bumptech / bumptech/glide

java.lang.IndexOutOfBoundsException java.lang.IllegalArgumentException

Open
#5,180 1 comment 0 reactions 0 assignees View on GitHub
bug GIF
Dominant language
Java
Stars
35k
Forks
6.2k
Avg merge
1d 11h
Merged PRs (30d)
8

Description

**I have a picture url ,when I use glide load this url, it don‘t show this picture, this is the log:**

`java.lang.IndexOutOfBoundsException: index=-1330518587 out of bounds (limit=49935, nb=2)
at java.nio.Buffer.checkIndex(Buffer.java:564)
at java.nio.HeapByteBuffer.getShort(HeapByteBuffer.java:263)
at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser$RandomAccessReader.getInt16(DefaultImageHeaderParser.java:464)
at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser.parseExifSegment(DefaultImageHeaderParser.java:364)
at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser.parseExifSegment(DefaultImageHeaderParser.java:269)
at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser.getOrientation(DefaultImageHeaderParser.java:237)
at com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser.getOrientation(DefaultImageHeaderParser.java:83)
at com.bumptech.glide.load.ImageHeaderParserUtils$5.getOrientation(ImageHeaderParserUtils.java:174)
at com.bumptech.glide.load.ImageHeaderParserUtils.getOrientationInternal(ImageHeaderParserUtils.java:222)
at com.bumptech.glide.load.ImageHeaderParserUtils.getOrientation(ImageHeaderParserUtils.java:168)
at com.bumptech.glide.load.resource.bitmap.ImageReader$InputStreamImageReader.getImageOrientation(ImageReader.java:204)
at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeFromWrappedStreams(Downsampler.java:330)
at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:285)
at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:222)
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)`

`java.lang.IllegalArgumentException: setDataSource failed: status = 0x80000000
at android.media.MediaMetadataRetriever._setDataSource(Native Method)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:312)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:336)
at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:318)
at com.bumptech.glide.load.resource.bitmap.VideoDecoder$ParcelFileDescriptorInitializer.initialize(VideoDecoder.java:313)
at com.bumptech.glide.load.resource.bitmap.VideoDecoder.decode(VideoDecoder.java:173)
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)`

**I have found a solution as follows:
DefaultImageHeaderParser.java**

` short getInt16(int offset) {
try {
return isAvailable(offset, 2) ? data.getShort(offset) : -1;
} catch (Exception e) {
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, e.getMessage());
}
}
return -1;
}`

**This modification can display the image normally. Is this a bug?**

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.