Skip to content

Conversation

@kagod-dev
Copy link

@kagod-dev kagod-dev commented Sep 29, 2025

Motivation

This PR aims to mitigate crash caused by IllegalStateException thrown due to closable image reference being already closed when getting the image info.
The crash is reported as #2826. On my end with version 3.6.0 I get following stack trace

java.lang.IllegalStateException: null
    at com.facebook.common.internal.Preconditions.checkState(Preconditions.java:162)
    at com.facebook.drawee.backends.pipeline.PipelineDraweeController.getImageInfo(PipelineDraweeController.java:366)
    at com.facebook.drawee.backends.pipeline.PipelineDraweeController.getImageInfo(PipelineDraweeController.java:64)
    at com.facebook.drawee.controller.AbstractDraweeController.reportSuccess(AbstractDraweeController.java:849)
    at com.facebook.drawee.controller.AbstractDraweeController.onNewResultInternal(AbstractDraweeController.java:667)
    at com.facebook.drawee.controller.AbstractDraweeController.-$$Nest$monNewResultInternal
    at com.facebook.drawee.controller.AbstractDraweeController$2.onNewResultImpl(AbstractDraweeController.java:600)
    at com.facebook.datasource.BaseDataSubscriber.onNewResult(BaseDataSubscriber.java:51)
    at com.facebook.datasource.AbstractDataSource$1.run(AbstractDataSource.java:200)
    at android.os.Handler.handleCallback(Handler.java:959)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loopOnce(Looper.java:257)
    at android.os.Looper.loop(Looper.java:342)
    at android.app.ActivityThread.main(ActivityThread.java:9634)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)

To mitigate the crash I moved reading image info before creating drawable from it and to be also surrounded by try-catch.

Test Plan

Unfortunately I can't provide a test plan since the exception is thrown most likely due to some race condition.

@meta-cla meta-cla bot added the CLA Signed label Sep 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant