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:548)
at
flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:302)
at
flex.messaging.endpoints.rtmp.AbstractRTMPServer.dispatchMessage(AbstractRTMPServer.java:682)
at
flex.messaging.endpoints.rtmp.NIORTMPConnection$RTMPReader.run(NIORTMPConnection.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</hibernate-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:548)
at
flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:302)
at
flex.messaging.endpoints.rtmp.AbstractRTMPServer.dispatchMessage(AbstractRTMPServer.java:682)
at
flex.messaging.endpoints.rtmp.NIORTMPConnection$RTMPReader.run(NIORTMPConnection.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)