JPEXS Free Flash Decompiler Issue Tracker

If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler

NEW : We have got a new blog where we post some interesting SWF internals info.

List of issuesList of issues

#2066 NullPointerException in ScriptInfo.getPacks when attempting to load api-versioned SWF
Author: user Aaron1011
Date created:
Type: feature
Visibility: Everybody
Assigned to:
State: closed Help

> What steps will reproduce the problem? Open the attached custom playerglobal.swf in FFdec. > What is the expected output? What do you see instead? I see the following stack trace in the console: ``` Aug 27, 2023 10:27:58 AM com.jpexs.decompiler.flash.gui.View execInEventDispatch SEVERE: null java.lang.reflect.InvocationTargetException at java.awt.EventQueue.invokeAndWait(EventQueue.java:1349) at java.awt.EventQueue.invokeAndWait(EventQueue.java:1324) at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1353) at com.jpexs.decompiler.flash.gui.View.execInEventDispatch(View.java:462) at com.jpexs.decompiler.flash.gui.Main$OpenFileWorker.doInBackground(Main.java:1567) at javax.swing.SwingWorker$1.call(SwingWorker.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at javax.swing.SwingWorker.run(SwingWorker.java:334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.NullPointerException at com.jpexs.decompiler.flash.abc.types.ScriptInfo.getPacks(ScriptInfo.java:101) at com.jpexs.decompiler.flash.abc.ABC.getScriptPacks(ABC.java:1119) at com.jpexs.decompiler.flash.SWF.getAS3Packs(SWF.java:2170) at com.jpexs.decompiler.flash.gui.abc.ClassesListTreeModel.<init>(ClassesListTreeModel.java:6 4) at com.jpexs.decompiler.flash.gui.tagtree.TagTreeModel.createTagList(TagTreeModel.java:291) at com.jpexs.decompiler.flash.gui.tagtree.TagTreeModel.getSwfInfo(TagTreeModel.java:449) at com.jpexs.decompiler.flash.gui.tagtree.TagTreeModel.getSwfFolders(TagTreeModel.java:462) at com.jpexs.decompiler.flash.gui.tagtree.TagTreeModel.getAllChildren(TagTreeModel.java:511) at com.jpexs.decompiler.flash.gui.tagtree.AbstractTagTreeModel.calculateCollisions(AbstractTa gTreeModel.java:56) at com.jpexs.decompiler.flash.gui.tagtree.AbstractTagTreeModel.calculateCollisions(AbstractTa gTreeModel.java:70) at com.jpexs.decompiler.flash.gui.tagtree.AbstractTagTreeModel.calculateCollisions(AbstractTa gTreeModel.java:51) at com.jpexs.decompiler.flash.gui.tagtree.TagTreeModel.updateSwfs(TagTreeModel.java:148) at com.jpexs.decompiler.flash.gui.MainPanel.lambda$new$0(MainPanel.java:1249) at com.jpexs.decompiler.flash.gui.helpers.ObservableList.fireCollectionChanged(ObservableList .java:223) at com.jpexs.decompiler.flash.gui.helpers.ObservableList.add(ObservableList.java:68) at com.jpexs.decompiler.flash.gui.MainPanel.load(MainPanel.java:1399) at com.jpexs.decompiler.flash.gui.Main$OpenFileWorker.lambda$doInBackground$0(Main.java:1573) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDo main.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) ``` > What version of the product are you using? Is it "nightly build"? Which operating system do you have? FFDec 18.5.0 on Linux > Please provide any additional information below. If the problem is related to a SWF file, attach it here, otherwise we can't help you. The attached playerglobal.swf is an unusual file - it's part of the Ruffle flash emulator, and is compiled using `asc.jar` with `-apiversioning`. It's not run as a normal SWF - instead, Ruffle extracts data from it during load time. Let me know if you need more details about how it's built (it's associated with https://github.com/ruffle-rs/ruffle/pull/12967)
admin
I have added basic support for api-versioned SWFs in nightly 2584, try it. However, I don't recommend you to use AS3 direct editation in it, since it currently does not compile the versioning back.
State: new→upgraded
Type: bug→feature
admin
I also want to inform you that since nightly 2590, compound scripts (scripts which contain more than one externally visible definitions) are displayed in separate trees. Also, direct AS3 editing is disabled for them.
admin
State: upgraded→closed