This does look like a bug that will occur when you have
autoSyncEnabled=false and you use a Set either with lazy loading or as a
return value from a fill.  

 

It is an easy fix - we are just casting to a List in a couple of places
instead of to a Collection.   For now, maybe you can workaround the
problem by turning autoSyncEnabled=true?  

 

Jeff

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of thunderstumpgesatwork
Sent: Tuesday, December 05, 2006 8:20 AM
To: [email protected]
Subject: [flexcoders] Re: FDS - class cast exception - lazy loading
relationship

 

I have tried to submit this as a defect, because as far as I can tell,
it is. The "bug report" form is very lacking though! It said my
description had to be less than 2000 characters, which isn't enough to
provide the trace information, or the Hibernate/FDMS mappings, and
then I trimmed and trimmed my bug report to 1931 characters and it
STILL wouldn't let me submit it... (last time I checked, 1931 was less
than 2000)... so I yanked out MORE useful information until I could
get it to submit.

Does anyone at Adobe want to get the full scoop on this issue? Here it
is!

Please let me know if this has been captured, and if it is a known
defect.

thanks,
Thunder

--- In [email protected] <mailto:flexcoders%40yahoogroups.com>
, "thunderstumpgesatwork"
<[EMAIL PROTECTED]> wrote:
>
> Guys,
> 
> I'm having more troubles with FDS... seems like there's some internal
> exception lurking around every corner...
> 
> Here's a simple managed relationship between an applicationConfig and
> a Set of dashboards. The relationship is lazy, and when a dashboard is
> accessed I get the expected "ItemPendingError" but then immediately
> afterwards I get this java class-cast-exception on the server.
> 
> I can load the dashboards separately, but when accessed across the
> relationship I get this error. Below is the relationship from the
> data-management-config, and my Hibernate relationship mapping, and the
> exception and debug trace follow that. 
> 
> Thanks for any help you can provide. Is this a defect?
> 
> Thunder
> 
> exception: java.lang.ClassCastException:
> org.hibernate.collection.PersistentSet
> at
>
flex.data.SequenceManager.getPageFromSequence(SequenceManager.java:694)
> at flex.data.DataService.serviceMessage(DataService.java:234)
> at
>
flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:54
8)
> at
>
flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoin
t.java:302)
> at
>
flex.messaging.endpoints.rtmp.AbstractRTMPServer.dispatchMessage(Abstrac
tRTMPServer.java:682)
> at
>
flex.messaging.endpoints.rtmp.NIORTMPConnection$RTMPReader.run(NIORTMPCo
nnection.java:665)
> at
>
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker
.runTask(ThreadPoolExecutor.java:643)
> at
>
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker
.run(ThreadPoolExecutor.java:668)
> at java.lang.Thread.run(Thread.java:595)
> _______________________________
> 
> <set name="dashboards" inverse="true" lazy="true">
> <key>
> <column name="APPLICATIONID" length="22" not-null="true" />
> </key>
> <one-to-many class="Dashboard" />
> </set>
> _______________________________
> 
> <destination id="Applicationconfig" >
> <adapter ref="java-dao" />
> <properties>
> <source>flex.data.assemblers.HibernateAssembler</source>
> <scope>application</scope>
> <metadata>
> <identity property="id"/>
> <one-to-many property="dashboards" destination="Dashboard"
> lazy="true"/>
> </metadata>
> <network>
> <paging enabled="true" pageSize="10" />
> <throttle-inbound policy="ERROR" max-frequency="500"/>
> <throttle-outbound policy="REPLACE" max-frequency="500"/>
> </network>
> <server>
> 
>
<hibernate-entity>com.company.config.presentation.Applicationconfig</hib
ernate-entity>
> <!-- NOTE: conflict mode set to NONE to solve incorrect conflict
> detection when saving dashboards. -->
> <update-conflict-mode>NONE</update-conflict-mode>
> <delete-conflict-mode>OBJECT</delete-conflict-mode>
> <fill-configuration>
> <use-query-cache>false</use-query-cache>
> <allow-hql-queries>true</allow-hql-queries>
> </fill-configuration>
> </server>
> </properties>
> </destination>
> 
> _______________________________
> 
> 
> 12/01 14:39:24 user [Flex] 14:39:24.507 [DEBUG] [Endpoint.RTMP]
> Deserializing AMF/RTMP request
> Version: 3
> (Command method=null (0) trxId=3.0)
> null
> (Typed Object #0 'flex.messaging.messages.CommandMessage')
> messageRefType = "flex.data.messages.DataMessage"
> operation = 0
> correlationId = ""
> messageId = "29A272A1-A246-13E8-5532-402C036BE987"
> destination = "Dashboard"
> timestamp = 0
> body = (Object #1)
> clientId = "611A30D3-2D63-0B48-2E83-402C034C71AD"
> timeToLive = 0
> headers = (Object #2)
> DSEndpoint = "my-rtmp"
> 
> 12/01 14:39:24 user [Flex] 14:39:24.522 [DEBUG]
> [Message.Command.subscribe] Executed command: service=data-service
> commandMessage: Flex Message (flex.messaging.messages.CommandMessage)
> operation = subscribe
> selector = null
> messageRefType = flex.data.messages.DataMessage
> clientId = 611A30D3-2D63-0B48-2E83-402C034C71AD
> correlationId =
> destination = Dashboard
> messageId = 29A272A1-A246-13E8-5532-402C036BE987
> timestamp = 1165012764522
> timeToLive = 0
> body = {}
> hdr(DSEndpoint) = my-rtmp
> replyMessage: Flex Message
(flex.messaging.messages.AcknowledgeMessage)
> clientId = 611A30D3-2D63-0B48-2E83-402C034C71AD
> correlationId = 29A272A1-A246-13E8-5532-402C036BE987
> destination = null
> messageId = 3BAB7E19-CA0C-A3B3-7C9D-A1B6B29FFCE9
> timestamp = 1165012764522
> timeToLive = 0
> body = null
> 
> 
> 12/01 14:39:25 user [Flex] 14:39:25.777 [DEBUG] [Message.Data.get]
> After invoke service: data-service
> reply: Flex Message (flex.data.messages.PagedMessage)
> sequenceId = -1
> sequenceSize = 1
> (no sequence proxies)
> clientId = null
> correlationId = null
> destination = Applicationconfig
> messageId = 3BAB89A1-730A-2D39-83CE-4FEE7E43D508
> timestamp = 1165012765731
> timeToLive = 0
> body =
> [
> [Proxy([EMAIL PROTECTED])
> proxyClass=class flex.messaging.io.BeanProxy descriptor=[ excludes:
> [dashboards]]]
> ]
> hdr(referencedIds) =
> [
> {dashboards=
> [
> {id=1164467032523719875336},
> {id=1164388051550092880785},
> {id=1156440527883820192695},
> {id=1164384322718557235986},
> {id=1164467037039304665983},
> {id=1164467025953663641911}
> ]}
> ]
> 
> 12/01 14:39:25 user [Flex] 14:39:25.839 [DEBUG] [Endpoint.RTMP]
> Serializing AMF/RTMP response
> Version: 3
> (Command method=_result (0) trxId=4)
> (Typed Object #0 'flex.data.messages.PagedMessage')
> destination = "Applicationconfig"
> sequenceId = -1
> dataMessage = null
> headers = (Object #1)
> referencedIds = (Array #2)
> [0] = (Object #3)
> dashboards = (Array #4)
> [0] = (Typed Object #5 'flex.data.ItemIdentity')
> id = "1164467032523719875336"
> [1] = (Typed Object #6 'flex.data.ItemIdentity')
> id = "1164388051550092880785"
> [2] = (Typed Object #7 'flex.data.ItemIdentity')
> id = "1156440527883820192695"
> [3] = (Typed Object #8 'flex.data.ItemIdentity')
> id = "1164384322718557235986"
> [4] = (Typed Object #9 'flex.data.ItemIdentity')
> id = "1164467037039304665983"
> [5] = (Typed Object #10 'flex.data.ItemIdentity')
> id = "1164467025953663641911"
> correlationId = "4A3FBA46-ED42-7507-489F-402C036BBDB9"
> messageId = "3BAB89A1-730A-2D39-83CE-4FEE7E43D508"
> pageCount = 1
> timeToLive = 0.0
> pageIndex = 0
> timestamp = 1.165012765731E12
> clientId = "EDF46342-59C0-1C0A-C822-402C033D44C2"
> sequenceProxies = null
> body = (Array #11)
> [0] = (Typed Object #12
> 'com.company.config.presentation.Applicationconfig')
> userid = 0.0
> savename = "SYS"
> appCriteria = (Externalizable Object #13
> 'flex.messaging.io.ArrayCollection')
> (Array #14)
> selecteddashboard = "1156440527883820192695"
> businessname = "MAIN"
> applicationname = "MAIN"
> name = "MAIN"
> id = "1163778853188464256078"
> sequenceSize = 1
> 
> 12/01 14:39:43 user [Flex] 14:39:43.630 [DEBUG] [Endpoint.RTMP]
> Deserializing AMF/RTMP request
> Version: 3
> (Command method=null (0) trxId=5.0)
> null
> (Typed Object #0 'flex.data.messages.DataMessage')
> operation = 20
> body = (Object #1)
> prop = "dashboards"
> parent = "Applicationconfig"
> id = (Object #2)
> id = "1163778853188464256078"
> identity = null
> correlationId = ""
> messageId = "6C2B486D-F439-4857-E074-402C51FEE422"
> destination = "Dashboard"
> timestamp = 0
> body = (Ref #1)
> clientId = "611A30D3-2D63-0B48-2E83-402C034C71AD"
> timeToLive = 0
> headers = (Object #3)
> DSEndpoint = "my-rtmp"
> DSids = (Array #4)
> [0] = (Object #5)
> id = "1164467032523719875336"
> [1] = (Object #6)
> id = "1164388051550092880785"
> [2] = (Object #7)
> id = "1156440527883820192695"
> [3] = (Object #8)
> id = "1164384322718557235986"
> [4] = (Object #9)
> id = "1164467037039304665983"
> [5] = (Object #10)
> id = "1164467025953663641911"
> 
> 12/01 14:39:43 user [Flex] 14:39:43.630 [DEBUG]
> [Message.Data.page_items] Before invoke service: data-service
> incomingMessage: Flex Message (flex.data.messages.DataMessage)
> operation = page_items
> id = null
> clientId = 611A30D3-2D63-0B48-2E83-402C034C71AD
> correlationId =
> destination = Dashboard
> messageId = 6C2B486D-F439-4857-E074-402C51FEE422
> timestamp = 1165012783630
> timeToLive = 0
> body = {prop=dashboards, id={id=1163778853188464256078},
> parent=Applicationconfig}
> hdr(DSEndpoint) = my-rtmp
> hdr(DSids) =
> [
> {id=1164467032523719875336},
> {id=1164388051550092880785},
> {id=1156440527883820192695},
> {id=1164384322718557235986},
> {id=1164467037039304665983},
> {id=1164467025953663641911}
> ]
> 
> 12/01 14:39:43 user [Flex] 14:39:43.692 [DEBUG]
> [DataService.Hibernate] Get object from hibernate with
> id=1163778853188464256078 ->
> [EMAIL PROTECTED]
> Exception in RtmpReader thread: java.lang.ClassCastException:
> org.hibernate.collection.PersistentSet
> java.lang.ClassCastException: org.hibernate.collection.PersistentSet
> at
>
flex.data.SequenceManager.getItemsFromCollectionId(SequenceManager.java:
739)12/01
> 14:39:43 user [Flex] 14:39:43.769 [ERROR] [Message.General] Exception
> when invoking service: data-service
> with message: Flex Message (flex.data.messages.DataMessage)
> operation = page_items
> id = null
> clientId = 611A30D3-2D63-0B48-2E83-402C034C71AD
> correlationId =
> destination = Dashboard
> messageId = 6C2B486D-F439-4857-E074-402C51FEE422
> timestamp = 1165012783630
> timeToLive = 0
> body = {prop=dashboards, id={id=1163778853188464256078},
> parent=Applicationconfig}
> hdr(DSEndpoint) = my-rtmp
> hdr(DSids) =
> [
> {id=1164467032523719875336},
> {id=1164388051550092880785},
> {id=1156440527883820192695},
> {id=1164384322718557235986},
> {id=1164467037039304665983},
> {id=1164467025953663641911}
> ]
> exception: java.lang.ClassCastException:
> org.hibernate.collection.PersistentSet
> 
> 
> at
>
flex.data.SequenceManager.getPageFromSequence(SequenceManager.java:694)
> at flex.data.DataService.serviceMessage(DataService.java:234)
> at
>
flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:54
8)
> at
>
flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoin
t.java:302)
> at
>
flex.messaging.endpoints.rtmp.AbstractRTMPServer.dispatchMessage(Abstrac
tRTMPServer.java:682)
> at
>
flex.messaging.endpoints.rtmp.NIORTMPConnection$RTMPReader.run(NIORTMPCo
nnection.java:665)
> at
>
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker
.runTask(ThreadPoolExecutor.java:643)
> at
>
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker
.run(ThreadPoolExecutor.java:668)
> at java.lang.Thread.run(Thread.java:595)
>

 

Reply via email to