Details
Description
An AIR application I am working on makes a single call to two separate services. I get the following error:
PHP Fatal error: Uncaught exception 'Zend_Amf_Exception' with message 'Unable to parse null body data Unsupported type marker: 36' in /var/www/lib/Zend/Amf/Request.php:174
Stack trace:
#0 /var/www/lib/Zend/Amf/Request.php(125): Zend_Amf_Request->readBody()
#1 /var/www/lib/Zend/Amf/Request.php(93): Zend_Amf_Request->readMessage(Object(Zend_Amf_Parse_InputStream))
#2 /var/www/lib/Zend/Amf/Request/Http.php(64): Zend_Amf_Request->initialize('??????null/...')
#3 /var/www/lib/Zend/Amf/Server.php(365): Zend_Amf_Request_Http->__construct()
#4 /var/www/lib/Zend/Amf/Server.php(313): Zend_Amf_Server->getRequest()
#5 /var/www/index.php(26): Zend_Amf_Server->handle()
#6 {main}
thrown in /var/www/lib/Zend/Amf/Request.php on line 174
I'm using the Cairngorm framework, and the following two events, which result in requests to Zend AMF, cause this error to occur:
new DataSetEvent(DataSetEvent.GET_ALL).dispatch();
new SPIChartEvent().dispatch();
If I comment out either line so that only one request is sent at a time, the issue does not appear. Similarly, if I change the RemoteObject in my service locator from this:
<mx:RemoteObject id="DataSetService" destination="zend" source="DataSetService" showBusyCursor="true" />
to this:
<mx:RemoteObject id="DataSetService" destination="zend" source="DataSetService" showBusyCursor="true" concurrency="single" />
the issue is again avoided. I am guessing that Flash is pipelining the calls into a single request and Zend's parser isn't expecting this. Not sure, I'm not an expert in AMF, just my guess.
Issue Links
| This issue depends on: | ||||
| ZF-6393 | Wrong AMF0_AMF3 reference counting |
|
|
|
Patrick can you please submit the smallest code example possible. I can not reproduce this issue.