Col-E / Col-E/Recaf

Recaf randomly crashed

Open
#1,049 6 comments 0 reactions 0 assignees View on GitHub
3rd party problem
Dominant language
Java
Stars
7.4k
Forks
538
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**

I had discord's apk open and forgot about it, after sometime it randomly crashed recaf

**To Reproduce**

Steps to reproduce the behavior:
I dont even know, it was open in the background

**Exception**

If applicable, add the exception/stacktrace.
```

Receiving classpath entries from parent process...
Resolving Recaf entry-point...
Launching Recaf...
19:52:26.227 [JFXValidation/main] INFO : JavaFX successfully initialized: 24.0.2-ea
19:52:26.235 [Bootstrap/main] INFO : Initializing Recaf 4.0.0-SNAPSHOT
- Build rev: 1
- Build date: 2026 08/22 01:53
- Build hash: c5dffdd3ebbd62bcc7998a6d386e96692b82fc95
19:52:26.236 [Bootstrap/main] INFO : Creating Recaf CDI container...
19:52:26.247 [Bootstrap/main] INFO : CDI: Adding interceptors & extensions
19:52:26.249 [Bootstrap/main] INFO : CDI: Registering bean packages
19:52:26.250 [Bootstrap/main] INFO : CDI: Running user-defined Consumer
19:52:26.250 [Bootstrap/main] INFO : CDI: Initializing...
19:52:28.488 [Bootstrap/main] INFO : Recaf CDI container created in 2252ms
19:52:28.551 [Lang/main] DEBUG: Found 8 translations
19:52:28.570 [Lang/main] INFO : Loaded translations 'cs_CZ'
19:52:28.580 [Lang/main] INFO : Loaded translations 'de_DE'
19:52:28.587 [Lang/main] INFO : Loaded translations 'en_US'
19:52:28.596 [Lang/main] INFO : Loaded translations 'ja_JP'
19:52:28.604 [Lang/main] INFO : Loaded translations 'pl_PL'
19:52:28.612 [Lang/main] INFO : Loaded translations 'ru_RU'
19:52:28.617 [Lang/main] INFO : Loaded translations 'sv_SE'
19:52:28.623 [Lang/main] INFO : Loaded translations 'zh_CN'
19:52:28.664 [LaunchBootstrap/main] INFO : Initialization: No plugins found
19:52:31.124 [ScriptManager/JavaFX Application Thread] DEBUG: Starting script directory watch task
19:52:35.639 [BasicResourceImporter/Recaf-path-loader [9:0]] INFO : Reading input from ZIP container 'base.apk'
19:52:36.001 [BasicResourceImporter/Recaf-zip-import [10:0]] ERROR: IO error reading ZIP entry 'assets/index.android.bundle.patch' - skipping
software.coley.recaf.util.io.ZipDecompressionLimiter$ZipDecompressionLimitException: Refusing to decompress 'assets/index.android.bundle.patch': entry expands beyond 5250600 bytes
at software.coley.recaf.util.io.ZipDecompressionLimiter.decompress(ZipDecompressionLimiter.java:80)
at software.coley.lljzip.format.model.LocalFileHeader.decompress(LocalFileHeader.java:275)
at software.coley.recaf.util.io.LocalFileHeaderSource.decompressEntry(LocalFileHeaderSource.java:114)
at software.coley.recaf.util.io.LocalFileHeaderSource.decompress(LocalFileHeaderSource.java:87)
at software.coley.recaf.util.io.LocalFileHeaderSource.readAll(LocalFileHeaderSource.java:41)
at software.coley.recaf.services.workspace.io.BasicInfoImporter.readInfo(BasicInfoImporter.java:58)
at software.coley.recaf.services.workspace.io.BasicInfoImporter$Proxy$_$$_WeldClientProxy.readInfo(Unknown Source)
at software.coley.recaf.services.workspace.io.BasicResourceImporter.lambda$handleZip$1(BasicResourceImporter.java:249)
at software.coley.recaf.util.threading.ThreadUtil.lambda$wrap$5(ThreadUtil.java:312)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
19:52:36.120 [BasicResourceImporter/Recaf-zip-import [10:4]] INFO : Reading input from ZIP container 'assets/index.android.bundle'
19:52:36.273 [BasicResourceImporter/Recaf-zip-import [10:4]] ERROR: Failed to read embedded ZIP 'assets/index.android.bundle'
java.io.IOException: No valid End-Of-Central-Directory found!
at software.coley.lljzip.format.read.JvmZipReader.findEndOfCentralDirectory(JvmZipReader.java:231)
at software.coley.lljzip.format.read.JvmZipReader.read(JvmZipReader.java:85)
at software.coley.lljzip.ZipIO.read(ZipIO.java:262)
at software.coley.lljzip.ZipIO.read(ZipIO.java:202)
at software.coley.recaf.services.workspace.io.ResourceImporterConfig.lambda$newJvmMapping$2(ResourceImporterConfig.java:198)
at software.coley.collections.func.UncheckedFunction.apply(UncheckedFunction.java:17)
at software.coley.recaf.services.workspace.io.BasicResourceImporter.handleZip(BasicResourceImporter.java:205)
at software.coley.recaf.services.workspace.io.BasicResourceImporter.addFileInfo(BasicResourceImporter.java:518)
at software.coley.recaf.services.workspace.io.BasicResourceImporter.addInfo(BasicResourceImporter.java:373)
at software.coley.recaf.services.workspace.io.BasicResourceImporter.lambda$handleZip$1(BasicResourceImporter.java:289)
at software.coley.recaf.util.threading.ThreadUtil.lambda$wrap$5(ThreadUtil.java:312)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
19:52:36.664 [BasicResourceImporter/Recaf-zip-import [10:4]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_camera.lottie'
19:52:36.664 [BasicResourceImporter/Recaf-zip-import [10:1]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_messagerequest.lottie'
19:52:36.667 [BasicResourceImporter/Recaf-zip-import [10:3]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_messagestab.lottie'
19:52:36.669 [BasicResourceImporter/Recaf-zip-import [10:5]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_microphone.lottie'
19:52:36.678 [BasicResourceImporter/Recaf-zip-import [10:3]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem12.lottie'
19:52:36.678 [BasicResourceImporter/Recaf-zip-import [10:1]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem15.lottie'
19:52:36.678 [BasicResourceImporter/Recaf-zip-import [10:4]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem1.lottie'
19:52:36.685 [BasicResourceImporter/Recaf-zip-import [10:5]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem18.lottie'
19:52:36.690 [BasicResourceImporter/Recaf-zip-import [10:3]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem2.lottie'
19:52:36.692 [BasicResourceImporter/Recaf-zip-import [10:1]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem24.lottie'
19:52:36.697 [BasicResourceImporter/Recaf-zip-import [10:4]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem3.lottie'
19:52:36.700 [BasicResourceImporter/Recaf-zip-import [10:5]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem6.lottie'
19:52:36.701 [BasicResourceImporter/Recaf-zip-import [10:3]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_nitrogem9.lottie'
19:52:36.706 [BasicResourceImporter/Recaf-zip-import [10:1]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_notificationstab.lottie'
19:52:36.712 [BasicResourceImporter/Recaf-zip-import [10:5]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_servertab.lottie'
19:52:36.720 [BasicResourceImporter/Recaf-zip-import [10:4]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_spendearnorbs.lottie'
19:52:36.722 [BasicResourceImporter/Recaf-zip-import [10:3]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_spendearnorbslighttheme.lottie'
19:52:36.724 [BasicResourceImporter/Recaf-zip-import [10:1]] INFO : Reading input from ZIP container 'res/raw/design_components_lottieicon_native_generated_lotties_youtab.lottie'
19:52:40.905 [AndroidApiResource/Recaf-path-loader [9:0]] INFO : Initializing Android API support resource...
19:52:41.477 [TransformationApplier/Recaf-resource-summary [33:0]] DEBUG: Pruning transformer 'Cycle class removal' after pass 1 completed with no work done
19:52:41.483 [TransformationApplier/Recaf-resource-summary [33:0]] DEBUG: Pruning transformer 'Illegal annotation removal' after pass 1 completed with no work done
19:52:41.503 [TransformationApplier/Recaf-resource-summary [33:0]] DEBUG: Pruning transformer 'Illegal signature removal' after pass 1 completed with no work done
19:52:41.511 [TransformationApplier/Recaf-resource-summary [33:0]] DEBUG: Pruning transformer 'Duplicate annotation removal' after pass 1 completed with no work done
19:52:41.521 [TransformationApplier/Recaf-resource-summary [33:0]] DEBUG: Pruning transformer 'Long annotation removal' after pass 1 completed with no work done
19:52:41.526 [TransformationApplier/Recaf-resource-summary [33:0]] DEBUG: Pruning transformer 'Long exception removal' after pass 1 completed with no work done
19:52:41.528 [TransformationApplier/Recaf-resource-summary [33:0]] DEBUG: Computed transformations with 6 transformers, affecting 0 classes after 1 passes
19:55:51.368 [LaunchBootstrap/JavaFX Application Thread] ERROR: Uncaught exception on thread 'JavaFX Application Thread'
java.lang.IllegalStateException: java.lang.NullPointerException
at software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass(BasicAndroidClassInfo.java:69)
at software.coley.recaf.ui.pane.editing.AbstractDecompilePane.onUpdatePath(AbstractDecompilePane.java:256)
at software.coley.recaf.ui.pane.editing.ClassPane.lambda$onUpdatePath$2(ClassPane.java:59)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
at software.coley.recaf.ui.pane.editing.ClassPane.onUpdatePath(ClassPane.java:57)
at software.coley.recaf.services.navigation.Actions.lambda$gotoDeclaration$11(Actions.java:420)
at software.coley.recaf.services.navigation.Actions.createContent(Actions.java:2679)
at software.coley.recaf.services.navigation.Actions.getOrCreatePathContent(Actions.java:2670)
at software.coley.recaf.services.navigation.Actions.gotoDeclaration(Actions.java:411)
at software.coley.recaf.services.navigation.Actions.gotoDeclaration(Actions.java:334)
at software.coley.recaf.services.navigation.Actions$Proxy$_$$_WeldClientProxy.gotoDeclaration(Unknown Source)
at software.coley.recaf.services.cell.CellConfigurationService.openPath(CellConfigurationService.java:166)
at software.coley.recaf.services.cell.CellConfigurationService.lambda$clickHandlerOf$4(CellConfigurationService.java:855)
at software.coley.recaf.services.cell.CellConfigurationService.lambda$configure$1(CellConfigurationService.java:151)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:199)
at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3709)
at javafx.scene.Scene$MouseHandler.process(Scene.java:4014)
at javafx.scene.Scene.processMouseEvent(Scene.java:1934)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2763)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:352)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:254)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:386)
at com.sun.glass.ui.View.handleMouseEvent(View.java:560)
at com.sun.glass.ui.View.notifyMouse(View.java:946)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.NullPointerException
19:55:51.384 [ThreadUtil/Recaf-misc [1:5]] ERROR: Unhandled exception on thread 'Recaf-misc [1:5]'
java.lang.IllegalStateException: java.lang.NullPointerException
at software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass(BasicAndroidClassInfo.java:69)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.initialize(JavaContextActionSupport.java:211)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.initialize(JavaContextActionSupport.java:199)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.lambda$onUpdatePath$26(JavaContextActionSupport.java:811)
at software.coley.recaf.util.threading.ThreadUtil.lambda$wrap$2(ThreadUtil.java:236)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1825)
at software.coley.recaf.util.threading.ThreadUtil.lambda$wrap$2(ThreadUtil.java:236)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:309)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.NullPointerException
19:55:52.546 [LaunchBootstrap/JavaFX Application Thread] ERROR: Uncaught exception on thread 'JavaFX Application Thread'
java.lang.IllegalStateException: java.lang.NullPointerException
at software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass(BasicAndroidClassInfo.java:69)
at software.coley.recaf.ui.pane.editing.AbstractDecompilePane.onUpdatePath(AbstractDecompilePane.java:256)
at software.coley.recaf.ui.pane.editing.ClassPane.lambda$onUpdatePath$2(ClassPane.java:59)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
at software.coley.recaf.ui.pane.editing.ClassPane.onUpdatePath(ClassPane.java:57)
at software.coley.recaf.services.navigation.Actions.lambda$gotoDeclaration$11(Actions.java:420)
at software.coley.recaf.services.navigation.Actions.createContent(Actions.java:2679)
at software.coley.recaf.services.navigation.Actions.getOrCreatePathContent(Actions.java:2670)
at software.coley.recaf.services.navigation.Actions.gotoDeclaration(Actions.java:411)
at software.coley.recaf.services.navigation.Actions.gotoDeclaration(Actions.java:334)
at software.coley.recaf.services.navigation.Actions$Proxy$_$$_WeldClientProxy.gotoDeclaration(Unknown Source)
at software.coley.recaf.services.cell.CellConfigurationService.openPath(CellConfigurationService.java:166)
at software.coley.recaf.services.cell.CellConfigurationService.lambda$clickHandlerOf$4(CellConfigurationService.java:855)
at software.coley.recaf.services.cell.CellConfigurationService.lambda$configure$1(CellConfigurationService.java:151)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:199)
at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3709)
at javafx.scene.Scene$MouseHandler.process(Scene.java:4014)
at javafx.scene.Scene.processMouseEvent(Scene.java:1934)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2763)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:352)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:254)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:386)
at com.sun.glass.ui.View.handleMouseEvent(View.java:560)
at com.sun.glass.ui.View.notifyMouse(View.java:946)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.NullPointerException
19:55:52.561 [ThreadUtil/Recaf-misc [1:2]] ERROR: Unhandled exception on thread 'Recaf-misc [1:2]'
java.lang.IllegalStateException: java.lang.NullPointerException
at software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass(BasicAndroidClassInfo.java:69)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.initialize(JavaContextActionSupport.java:211)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.initialize(JavaContextActionSupport.java:199)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.lambda$onUpdatePath$26(JavaContextActionSupport.java:811)
at software.coley.recaf.util.threading.ThreadUtil.lambda$wrap$2(ThreadUtil.java:236)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1825)
at software.coley.recaf.util.threading.ThreadUtil.lambda$wrap$2(ThreadUtil.java:236)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:309)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.NullPointerException
20:01:23.529 [LaunchBootstrap/JavaFX Application Thread] ERROR: Uncaught exception on thread 'JavaFX Application Thread'
java.lang.IllegalStateException: java.lang.IllegalArgumentException
at software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass(BasicAndroidClassInfo.java:69)
at software.coley.recaf.ui.pane.editing.AbstractDecompilePane.onUpdatePath(AbstractDecompilePane.java:256)
at software.coley.recaf.ui.pane.editing.ClassPane.lambda$onUpdatePath$2(ClassPane.java:59)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
at software.coley.recaf.ui.pane.editing.ClassPane.onUpdatePath(ClassPane.java:57)
at software.coley.recaf.services.navigation.Actions.lambda$gotoDeclaration$11(Actions.java:420)
at software.coley.recaf.services.navigation.Actions.createContent(Actions.java:2679)
at software.coley.recaf.services.navigation.Actions.getOrCreatePathContent(Actions.java:2670)
at software.coley.recaf.services.navigation.Actions.gotoDeclaration(Actions.java:411)
at software.coley.recaf.services.navigation.Actions.gotoDeclaration(Actions.java:334)
at software.coley.recaf.services.navigation.Actions$Proxy$_$$_WeldClientProxy.gotoDeclaration(Unknown Source)
at software.coley.recaf.services.cell.CellConfigurationService.openPath(CellConfigurationService.java:166)
at software.coley.recaf.services.cell.CellConfigurationService.lambda$clickHandlerOf$4(CellConfigurationService.java:855)
at software.coley.recaf.services.cell.CellConfigurationService.lambda$configure$1(CellConfigurationService.java:151)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:199)
at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3709)
at javafx.scene.Scene$MouseHandler.process(Scene.java:4014)
at javafx.scene.Scene.processMouseEvent(Scene.java:1934)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2763)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:352)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:254)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:386)
at com.sun.glass.ui.View.handleMouseEvent(View.java:560)
at com.sun.glass.ui.View.notifyMouse(View.java:946)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.Frame.execute(Frame.java:1118)
at org.objectweb.asm.MethodWriter.visitInsn(MethodWriter.java:870)
at org.objectweb.asm.MethodVisitor.visitInsn(MethodVisitor.java:337)
at org.objectweb.asm.commons.AnalyzerAdapter.visitInsn(AnalyzerAdapter.java:232)
at org.objectweb.asm.MethodVisitor.visitInsn(MethodVisitor.java:337)
at me.darknet.dex.convert.ir.lowering.InstructionTrackingMethodVisitor.visitInsn(InstructionTrackingMethodVisitor.java:26)
at me.darknet.dex.convert.ir.lowering.IrOperationEmitter.emitUnary(IrOperationEmitter.java:169)
at me.darknet.dex.convert.ir.lowering.IrOperationEmitter.emit(IrOperationEmitter.java:53)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emitOp(IrLoweringEngine.java:4506)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.lambda$emitStatement$106(IrLoweringEngine.java:3319)
at me.darknet.dex.convert.ir.lowering.IrStatementEmitter.emit(IrStatementEmitter.java:22)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emitStatement(IrLoweringEngine.java:3318)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine$1.emitStatement(IrLoweringEngine.java:1245)
at me.darknet.dex.convert.ir.lowering.IrBlockEmitter.emitStatements(IrBlockEmitter.java:43)
at me.darknet.dex.convert.ir.lowering.IrBlockEmitter.emitBody(IrBlockEmitter.java:18)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emit(IrLoweringEngine.java:337)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emitResult(IrLoweringEngine.java:245)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emitResult(IrLoweringEngine.java:236)
at me.darknet.dex.convert.ir.IrLowering.emitWithResult(IrLowering.java:45)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.visit(DexToAsmClassVisitor.java:288)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:146)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:139)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:101)
at me.darknet.dex.tree.definitions.ClassDefinition.accept(ClassDefinition.java:210)
at me.darknet.dex.convert.DexConversionIr.emitClass(DexConversionIr.java:173)
at me.darknet.dex.convert.DexConversionIr.emitVerifiedClass(DexConversionIr.java:145)
at me.darknet.dex.convert.DexConversionIr.toJavaClass(DexConversionIr.java:132)
at software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass(BasicAndroidClassInfo.java:60)
... 51 more
Suppressed: java.lang.IllegalArgumentException
at org.objectweb.asm.Frame.execute(Frame.java:1118)
at org.objectweb.asm.MethodWriter.visitInsn(MethodWriter.java:870)
at org.objectweb.asm.tree.InsnNode.accept(InsnNode.java:65)
at org.objectweb.asm.tree.InsnList.accept(InsnList.java:144)
at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:751)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.emitDeterministicFallback(DexToAsmClassVisitor.java:571)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.emitFallback(DexToAsmClassVisitor.java:552)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.emitAggressiveOrFallback(DexToAsmClassVisitor.java:501)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.visit(DexToAsmClassVisitor.java:286)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:146)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:139)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:101)
at me.darknet.dex.tree.definitions.ClassDefinition.accept(ClassDefinition.java:210)
at me.darknet.dex.convert.DexConversionIr.emitClass(DexConversionIr.java:173)
at me.darknet.dex.convert.DexConversionIr.emitVerifiedClass(DexConversionIr.java:145)
at me.darknet.dex.convert.DexConversionIr.toJavaClass(DexConversionIr.java:128)
... 52 more
20:01:23.560 [ThreadUtil/Recaf-misc [1:2]] ERROR: Unhandled exception on thread 'Recaf-misc [1:2]'
java.lang.IllegalStateException: java.lang.IllegalArgumentException
at software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass(BasicAndroidClassInfo.java:69)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.initialize(JavaContextActionSupport.java:211)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.initialize(JavaContextActionSupport.java:199)
at software.coley.recaf.ui.control.richtext.source.JavaContextActionSupport.lambda$onUpdatePath$26(JavaContextActionSupport.java:811)
at software.coley.recaf.util.threading.ThreadUtil.lambda$wrap$2(ThreadUtil.java:236)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1825)
at software.coley.recaf.util.threading.ThreadUtil.lambda$wrap$2(ThreadUtil.java:236)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:309)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.Frame.execute(Frame.java:1118)
at org.objectweb.asm.MethodWriter.visitInsn(MethodWriter.java:870)
at org.objectweb.asm.MethodVisitor.visitInsn(MethodVisitor.java:337)
at org.objectweb.asm.commons.AnalyzerAdapter.visitInsn(AnalyzerAdapter.java:232)
at org.objectweb.asm.MethodVisitor.visitInsn(MethodVisitor.java:337)
at me.darknet.dex.convert.ir.lowering.InstructionTrackingMethodVisitor.visitInsn(InstructionTrackingMethodVisitor.java:26)
at me.darknet.dex.convert.ir.lowering.IrOperationEmitter.emitUnary(IrOperationEmitter.java:169)
at me.darknet.dex.convert.ir.lowering.IrOperationEmitter.emit(IrOperationEmitter.java:53)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emitOp(IrLoweringEngine.java:4506)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.lambda$emitStatement$106(IrLoweringEngine.java:3319)
at me.darknet.dex.convert.ir.lowering.IrStatementEmitter.emit(IrStatementEmitter.java:22)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emitStatement(IrLoweringEngine.java:3318)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine$1.emitStatement(IrLoweringEngine.java:1245)
at me.darknet.dex.convert.ir.lowering.IrBlockEmitter.emitStatements(IrBlockEmitter.java:43)
at me.darknet.dex.convert.ir.lowering.IrBlockEmitter.emitBody(IrBlockEmitter.java:18)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emit(IrLoweringEngine.java:337)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emitResult(IrLoweringEngine.java:245)
at me.darknet.dex.convert.ir.lowering.IrLoweringEngine.emitResult(IrLoweringEngine.java:236)
at me.darknet.dex.convert.ir.IrLowering.emitWithResult(IrLowering.java:45)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.visit(DexToAsmClassVisitor.java:288)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:146)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:139)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:101)
at me.darknet.dex.tree.definitions.ClassDefinition.accept(ClassDefinition.java:210)
at me.darknet.dex.convert.DexConversionIr.emitClass(DexConversionIr.java:173)
at me.darknet.dex.convert.DexConversionIr.emitVerifiedClass(DexConversionIr.java:145)
at me.darknet.dex.convert.DexConversionIr.toJavaClass(DexConversionIr.java:132)
at software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass(BasicAndroidClassInfo.java:60)
... 12 more
Suppressed: java.lang.IllegalArgumentException
at org.objectweb.asm.Frame.execute(Frame.java:1118)
at org.objectweb.asm.MethodWriter.visitInsn(MethodWriter.java:870)
at org.objectweb.asm.tree.InsnNode.accept(InsnNode.java:65)
at org.objectweb.asm.tree.InsnList.accept(InsnList.java:144)
at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:751)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.emitDeterministicFallback(DexToAsmClassVisitor.java:571)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.emitFallback(DexToAsmClassVisitor.java:552)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.emitAggressiveOrFallback(DexToAsmClassVisitor.java:501)
at me.darknet.dex.convert.DexToAsmClassVisitor$AsmCodeVisitor.visit(DexToAsmClassVisitor.java:286)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:146)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:139)
at me.darknet.dex.tree.visitor.DexTreeWalker.accept(DexTreeWalker.java:101)
at me.darknet.dex.tree.definitions.ClassDefinition.accept(ClassDefinition.java:210)
at me.darknet.dex.convert.DexConversionIr.emitClass(DexConversionIr.java:173)
at me.darknet.dex.convert.DexConversionIr.emitVerifiedClass(DexConversionIr.java:145)
at me.darknet.dex.convert.DexConversionIr.toJavaClass(DexConversionIr.java:128)
... 13 more
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffbc763ccd1, pid=25024, tid=9440
#
# JRE version: OpenJDK Runtime Environment Microsoft-13877124 (25.0.3+9) (build 25.0.3+9-LTS)
# Java VM: OpenJDK 64-Bit Server VM Microsoft-13877124 (25.0.3+9-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# C [ntdll.dll+0x1ccd1]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\Adminn\AppData\Roaming\Recaf\hs_err_pid25024.log
#
# If you would like to submit a bug report, please visit:
# https://github.com/microsoft/openjdk/issues
#

Sep 13, 2026 7:52:29 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @184f6be2'
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
WARNING: sun.misc.Unsafe::allocateMemory has been called by com.sun.marlin.OffHeapArray (file:/C:/Users/Adminn/AppData/Roaming/Recaf/dependencies/javafx-graphics-24.0.2-ea+1-win.jar)
WARNING: Please consider reporting this to the maintainers of class com.sun.marlin.OffHeapArray
WARNING: sun.misc.Unsafe::allocateMemory will be removed in a future release
Sep 13, 2026 8:04:27 PM javafx.scene.control.skin.VirtualFlow addTrailingCells
INFO: index exceeds maxCellCount. Check size calculations for class software.coley.recaf.ui.control.tree.WorkspaceTreeCell
```

**Screenshots**

no screenshots

Contributor guide

Open the contributing guide

Research direction

Start with software.coley.recaf.info.BasicAndroidClassInfo.asJvmClass at BasicAndroidClassInfo.java:69, then trace the call through AbstractDecompilePane.onUpdatePath and Actions.gotoDeclaration. Reproduce the crash while navigating declarations in the reported APK and inspect the null state shown by the stack trace. Done means the same navigation no longer throws an uncaught exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.