bumptech / bumptech/glide

NullPointerException-DecodeJob.runLoadPath

Open
#4,779 3 comments 2 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
35k
Forks
6.2k
Avg merge
1d 11h
Merged PRs (30d)
8

Description

**4.13.1**:

**okhttp3-4.9.3**:

**Various Android phones and Android systems.**:

**Glide load line / `GlideModule` (if any) / list Adapter code (if any)**:
```java
@GlideModule
public class NBGlideModule extends AppGlideModule {

@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(5, TimeUnit.SECONDS)
.connectTimeout(5, TimeUnit.SECONDS)
.addInterceptor(new RecordDownloadInterceptor())
.build();

OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client);
registry.replace(GlideUrl.class, InputStream.class, factory);
}

@Override
public void applyOptions(@NonNull @NotNull Context context, @NonNull @NotNull GlideBuilder builder) {
super.applyOptions(context, builder);
builder.setSourceExecutor(GlideExecutorUtils.createGlideExecutor(NBExecutors.IoService))
.setDiskCacheExecutor(GlideExecutorUtils.createGlideExecutor(NBExecutors.DefaultService))
.setAnimationExecutor(GlideExecutorUtils.createGlideExecutor(NBExecutors.DefaultService));
if (DeviceUtil.getDeviceTier().val < DeviceUtil.DEVICE_TIER.GOOD.val) {
//only enable RGB_565 mode with low performance device.
builder.setDefaultRequestOptions(
RequestOptions.formatOf(DecodeFormat.PREFER_RGB_565)
);
}
}
}

package com.bumptech.glide.load.engine.executor

import android.annotation.SuppressLint
import java.util.concurrent.ExecutorService

object GlideExecutorUtils {

@SuppressLint("VisibleForTests")
@JvmStatic
fun createGlideExecutor(executorService: ExecutorService): GlideExecutor {
return GlideExecutor(executorService)
}
}
```

**Stack trace / LogCat**:
```ruby
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'n3.v n3.t.a(com.bumptech.glide.load.data.e, l3.i, int, int, n3.j$a)' on a null object reference
at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:535)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:499)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:485)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:430)
at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:394)
at com.bumptech.glide.load.engine.SourceGenerator.cacheData(SourceGenerator.java:176)
at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:56)
at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:311)
at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:280)
at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:98)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
```

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.