
|
If you were logged in you would be able to see more operations.
|
|
|
| Severity: |
Runtime Error
|
| Reproducibility: |
Every Time
|
| Discoverability: |
High
|
| Found in Version: |
Flash Player 9
- 9_0_124_0
|
| Affected OS(s): |
All OS Platforms
- All
|
| Steps to Reproduce: |
Steps to reproduce:
1. Attaching as an AIR project, simply because that was the easiest way for me to quickly write it to a file and run it.
2. Build and run the AIR application.
3. Click the "Read Problem Serializer" button.
Actual Results:
RangeError: Error #2006: The supplied index is out of bounds.
at flash.utils::ByteArray/readObject()
at io::ProblemSerializer/readExternal()[<path to environment>/SerializationIssue/src/io/ProblemSerializer.as:19]
at flash.filesystem::FileStream/readObject()
at SerializationIssue/readObj()[<path to environment>/SerializationIssue/src/SerializationIssue.mxml:40]
at SerializationIssue/___SerializationIssue_Button2_click()[<path to environment>/SerializationIssue/src/SerializationIssue.mxml:51]
Expected Results:
It to output the following into the TextArea as well as trace it out:
[ProblemSerializer]
arr: [
{ obj: items, }
{ obj: in, }
{ obj: problem, }
{ obj: serializer, }
]
Workaround (if any):
Steps to reproduce:
1. Attaching as an AIR project, simply because that was the easiest way for me to quickly write it to a file and run it.
2. Build and run the AIR application.
3. Click the "Read Problem Serializer" button.
Actual Results:
RangeError: Error #2006: The supplied index is out of bounds.
at flash.utils::ByteArray/readObject()
at io::ProblemSerializer/readExternal()[<path to environment>/SerializationIssue/src/io/ProblemSerializer.as:19]
at flash.filesystem::FileStream/readObject()
at SerializationIssue/readObj()[<path to environment>/SerializationIssue/src/SerializationIssue.mxml:40]
at SerializationIssue/___SerializationIssue_Button2_click()[<path to environment>/SerializationIssue/src/SerializationIssue.mxml:51]
Expected Results:
It to output the following into the TextArea as well as trace it out:
[ProblemSerializer]
arr: [
{ obj: items, }
{ obj: in, }
{ obj: problem, }
{ obj: serializer, }
]
Workaround (if any):
|
| Language Found: |
English
|
| Bugbase Id: |
none
|
| Resolved by: |
Greg Jastrab
|
| Participants: |
Edwin Wong, Greg Jastrab and Peter Farland
|
| Browser: |
Safari 3.x
|
|
All
|
Comments
|
|
Sort Order:
|
|
When an externalizable class's readExternal method is invoked, are the reference tables used to look up the Object and Traits not available to a ByteArray that has read the remaining data out of the buffer?
It seems that if the reference tables are not available to/used by the ByteArray this would explain why
function readExternal(input:IDataInput):void {
...
var arr:Array = input.readObject() as Array;
}
would work but
function readExternal(input:IDataInput):void {
var ba:ByteArray = new ByteArray();
input.readBytes(ba);
...
var arr:Array = ba.readObject() as Array;
}
would not work.