Status/Resolution/Reason: Closed/Fixed/
Reporter/Name(from Bugbase): Bryon Reynolds / Bryon Reynolds (Bryon Reynolds)
Created: 03/29/2010
Components: Flex/Flash, Flex remoting
Versions: 9.0
Failure Type: Unspecified
Found In Build/Fixed In Build: Version 9,0,0,251028; Driver Version 4.0 (Build 0005) / 274012
Priority/Frequency: Major / Unknown
Locale/System: English / Platforms All
Vote Count: 1
Problem:
The following link describes the problem. It involves passing a Flex object with some properties set to null down to Coldfusion, where the properties are converted to [empty string]. http://forums.adobe.com/thread/598134?tstart=0I confirmed that there is, indeed, a difference between CF8 and CF9 by outputting the object in question to the console in environments with the same code but different CF versions (not using the example in link above, but while trouble-shooting application code). Only in CF9 when I try to pass my object from Flex to CF back to Flex do I get the following:Server.Processing :: Unable to invoke CFC - Could not convert a value of type class java.lang.String to an Array. ::In CF8, my arrays were still arrays at the end of the day, along with other “complex types.” In CF9 they change to [empty string].
Method:
1. Create a remote class w/ Alias to CF object in Flex with an array property set to null.2. Pass it down to ColdFusion.--it serializes to the CF object--3. Return it to Flex.4. Receive error Could not convert a value of type class java.lang.String to an Array.
Example objects:
[RemoteClass(alias="SomeVO")]
public class SomeVO {
public var whatever:Array = null;
public function SomeVO() { }
}
<cfcomponent name="SomeVO" alias="SomeVO">
<cfproperty name="whatever" type="array"/>
<cfset this.whatever = arrayNew(1)/>
</cfcomponent>
Result:
Could not convert a value of type class java.lang.String to an Array.
[Flex]Exception occurred during serialization: coldfusion.runtime.Cast$ArrayConversionException: Cou
ld not convert a value of type class java.lang.String to an Array.
at coldfusion.runtime.Cast._Array(Cast.java:1256)
at coldfusion.flash.messaging.io.amf.TranslationUtil.translate(TranslationUtil.java:78)
at coldfusion.flash.messaging.io.ColdFusionPropertyProxy.getValue(ColdFusionPropertyProxy.ja
va:290)
at coldfusion.flash.messaging.io.ColdFusionPropertyProxy.getValue(ColdFusionPropertyProxy.ja
va:210)
at flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:579)
at flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:532)
at coldfusion.flash.messaging.io.amf.CFAMF3Output.writeObject(CFAMF3Output.java:205)
at flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:257)
at flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:580)
at flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:532)
at coldfusion.flash.messaging.io.amf.CFAMF3Output.writeObject(CFAMF3Output.java:205)
at coldfusion.flash.messaging.io.amf.CFAMF0Output.writeObject(CFAMF0Output.java:148)
at flex.messaging.io.amf.AmfMessageSerializer.writeObject(AmfMessageSerializer.java:196)
at flex.messaging.io.amf.AmfMessageSerializer.writeBody(AmfMessageSerializer.java:186)
at flex.messaging.io.amf.AmfMessageSerializer.writeMessage(AmfMessageSerializer.java:142)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:195)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:293)
at coldfusion.flash.messaging.CFAMFEndPoint.service(CFAMFEndPoint.java:276)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:364)
at coldfusion.flex.ColdFusionMessageBrokerServlet.service(ColdFusionMessageBrokerServlet.jav
a:114)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
at coldfusion.filter.FlashRequestControlFilter.doFilter(FlashRequestControlFilter.java:71)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
----------------------------- Additional Watson Details -----------------------------
Watson Bug ID: 3041230
Deployment Phase: Release Candidate
External Customer Info:
External Company:
External Customer Name: Bryon Reynolds
External Customer Email: 73451D414484B3D0992016B7
External Test Config: 03/29/2010
Attachments:
Comments: