glide
glide copied to clipboard
java.lang.IndexOutOfBoundsException java.lang.IllegalArgumentException
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?
can you please explain me the problem in detail I want to work on these ?