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 issues#1459 FFDEC FAILS TO SAVE
Author: Help
Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS1/2Value Too Large
State: closed
> What steps will reproduce the problem?
Inputing a large amount of text(UNSURE)
> What is the expected output? What do you see instead?
Try to save to swf, doesn't save.
> What version of the product are you using? Is it "nightly build"? Which operating system
do you have?
Latest, MAC
> Please provide any additional information below. If the problem is related to a SWF
file, attach it here, otherwise we can't help you.
Error log :
07/04/2018 02:43:29 SEVERE null
java.lang.IllegalArgumentException: Value is too large for UI16: 65562
at com.jpexs.decompiler.flash.SWFOutputStream.writeUI16(SWFOutputStream.java:244)
at com.jpexs.decompiler.flash.action.Action.surroundWithAction(Action.java:376)
at com.jpexs.decompiler.flash.action.Action.getBytes(Action.java:336)
at com.jpexs.decompiler.flash.action.Action.actionsToBytes(Action.java:405)
at com.jpexs.decompiler.flash.action.Action.actionsToByteArrayRange(Action.java:416)
at com.jpexs.decompiler.flash.tags.DoActionTag.setActions(DoActionTag.java:164)
at
com.jpexs.decompiler.flash.gui.action.ActionPanel.saveDecompiledButtonActionPerformed(Acti
onPanel.java:1047)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at
org.pushingpixels.substance.internal.utils.RolloverButtonListener.mouseReleased(RolloverBu
ttonListener.java:124)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
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:80)
at
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDo
main.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDo
main.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
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)
The action size is limited to 65536 bytes, it is a hard limit in swf file format.
Damn, not way around it ?
What is this action exactly? Constantpool? Maybe you can split it to 2 action.
And your action size is 65562, so just a little bit over the limit (maybe I was wrong, the
real limit is not 65536, maybe it is 65534, but not big difference) so you should shrink
it only by 30 bytes... Maybe you can check the strings (if it is a contant pool, i can't
imagine any other huge action) and make som of them shorter by 1-2 characters.
In nightly 2124 we display error dialog during saving such script informing about the
situation.
(Instead of silently raising exception)
State: new→upgraded
State: upgraded→closed