[
https://issues.apache.org/jira/browse/FLEX-34371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14054445#comment-14054445
]
Justin Mclean commented on FLEX-34371:
--------------------------------------
Do previous version of Flex such as Adobe Flex 4.6 give the same issue? Just
want to know if it's a regression issue or not.
> how TagEncoder handles duplicate define* tags
> ---------------------------------------------
>
> Key: FLEX-34371
> URL: https://issues.apache.org/jira/browse/FLEX-34371
> Project: Apache Flex
> Issue Type: Bug
> Affects Versions: Apache Flex 4.12.0
> Reporter: Guest
> Attachments: test.swf
>
>
> Suppose there are two DefineEditText tags that are the same by .equals, and a
> TagEncoder handles them. This writes them both to the SWF, but assigns them
> the same character ID. Adobe's Flash player can load the SWF fine, but it
> causes swfdump to crash with an exception like the following:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: symbol 154
> redefined by identical tag
> at flash.swf.Dictionary.add(Dictionary.java:142)
> at flash.swf.TagDecoder.decodeDefineEditText(TagDecoder.java:1160)
> at flash.swf.TagDecoder.decodeTag(TagDecoder.java:319)
> at flash.swf.TagDecoder.decodeTags(TagDecoder.java:194)
> at flash.swf.TagDecoder.parse(TagDecoder.java:142)
> at flash.swf.tools.SwfxPrinter.dumpSwf(SwfxPrinter.java:2318)
> at flash.swf.tools.SwfxPrinter.main(SwfxPrinter.java:2225)
> {code}
> Actual result:
> defineEditText(tag) in TagEncoder calls
> {code:java}
> int id = dict.add(tag);
> {code}
> When serializing the second DefineEditText, the Dictionary finds the first
> one and returns its ID. Then, the defineEditText(tag) method writes the
> second copy with the first one's ID.
> Expected result:
> either
> - it writes the duplicate with a new ID or
> - it does not write anything and uses the first copy's ID for references to
> the second.
--
This message was sent by Atlassian JIRA
(v6.2#6252)