|
[
Permalink
| « Hide
]
Carsten Wolters added a comment - 03/Feb/08 02:43 PM
I tried with a filled set of enums, but I get the same problem with the deserialization. Is looks as if this is a problem with enums.
Frankk,
are you still working on this issue? I still cannot use granite, because of the faulty de/serialization. Please have a look at it. If you need help to locate or setup the problem, just give me a note. Cheers Carsten Hi Franck.
I still cannot use your nice work, because of the wrong de-/serialization of such an entity-field: @CollectionOfElements(fetch = FetchType.EAGER) @Enumerated(EnumType.STRING) @JoinTable(name = "user_event_types", joinColumns = @JoinColumn(name = "user_id")) private Set<EventMessageEventTypeEnum> eventTypes = new HashSet<EventMessageEventTypeEnum>(); The serializer looks not that bad, but I do not have a deep knowledge of the requested am3-stream. The corresponding debug output for an empty set is: --------------- 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=org.granite.hibernate.HibernatePersistentSet@4c2bac) 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object(o=org.granite.hibernate.HibernatePersistentSet@4c2bac)... 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] indexOfStoredObjects(o=org.granite.hibernate.HibernatePersistentSet@4c2bac) -> -1 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredObjects(o=org.granite.hibernate.HibernatePersistentSet@4c2bac) at index=4 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - classGetter=org.granite.hibernate.HibernateClassGetter@8993c1 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - oClass=class org.granite.hibernate.HibernatePersistentSet 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] getFromStoredClassDescriptors(clazz=class org.granite.hibernate.HibernatePersistentSet) 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] getFromStoredClassDescriptors() -> null 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredClassDescriptors(clazz=class org.granite.hibernate.HibernatePersistentSet) 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredClassDescriptors() - putting: name="org.granite.hibernate.HibernatePersistentSet", iDesc=org.granite.messaging.amf.io.util.IndexedJavaClassDescriptor@4a422e 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3IntegerData(i=7) 2008-05-04 14:26:40,093 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3StringData(s="org.granite.hibernate.HibernatePersistentSet") 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] indexOfStoredStrings(s="org.granite.hibernate.HibernatePersistentSet") -> -1 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredStrings(s="org.granite.hibernate.HibernatePersistentSet") at index=13 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3IntegerData(i=89) 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - desc=org.granite.messaging.amf.io.util.DefaultJavaClassDescriptor@4a3a7c 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - legacy Externalizable=org.granite.hibernate.HibernatePersistentSet@4c2bac 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=true) 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=false) 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=[]) 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3Array(array=[]) 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] indexOfStoredObjects(o=[]) -> -1 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredObjects(o=[]) at index=5 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3IntegerData(i=1) 2008-05-04 14:26:40,103 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object(o=org.granite.hibernate.HibernatePersistentSet@4c2bac) - Done ---------- and for a filled set I get: --------------- 2008-05-04 15:08:59,204 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=org.granite.hibernate.HibernatePersistentSet@4cc9cf) 2008-05-04 15:09:32,542 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object(o=org.granite.hibernate.HibernatePersistentSet@4cc9cf)... 2008-05-04 15:10:21,362 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] indexOfStoredObjects(o=org.granite.hibernate.HibernatePersistentSet@4cc9cf) -> -1 2008-05-04 15:10:33,450 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredObjects(o=org.granite.hibernate.HibernatePersistentSet@4cc9cf) at index=4 2008-05-04 15:11:01,720 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - classGetter=org.granite.hibernate.HibernateClassGetter@8993c1 2008-05-04 15:11:05,947 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - oClass=class org.granite.hibernate.HibernatePersistentSet 2008-05-04 15:11:18,264 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] getFromStoredClassDescriptors(clazz=class org.granite.hibernate.HibernatePersistentSet) 2008-05-04 15:11:33,807 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] getFromStoredClassDescriptors() -> null 2008-05-04 15:11:48,378 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredClassDescriptors(clazz=class org.granite.hibernate.HibernatePersistentSet) 2008-05-04 15:11:56,229 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredClassDescriptors() - putting: name="org.granite.hibernate.HibernatePersistentSet", iDesc=org.granite.messaging.amf.io.util.IndexedJavaClassDescriptor@466fea 2008-05-04 15:12:36,156 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3IntegerData(i=7) 2008-05-04 15:12:46,091 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3StringData(s="org.granite.hibernate.HibernatePersistentSet") 2008-05-04 15:12:46,091 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] indexOfStoredStrings(s="org.granite.hibernate.HibernatePersistentSet") -> -1 2008-05-04 15:12:46,091 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredStrings(s="org.granite.hibernate.HibernatePersistentSet") at index=13 2008-05-04 15:12:46,091 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3IntegerData(i=89) 2008-05-04 15:13:10,385 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - desc=org.granite.messaging.amf.io.util.DefaultJavaClassDescriptor@466fe6 2008-05-04 15:13:25,557 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - legacy Externalizable=org.granite.hibernate.HibernatePersistentSet@4cc9cf 2008-05-04 15:13:43,583 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=true) 2008-05-04 15:13:49,772 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=false) 2008-05-04 15:14:03,622 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=[ChannelMessage]) 2008-05-04 15:14:35,698 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3Array(array=[ChannelMessage]) 2008-05-04 15:14:47,585 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] indexOfStoredObjects(o=[ChannelMessage]) -> -1 2008-05-04 15:14:53,594 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredObjects(o=[ChannelMessage]) at index=5 2008-05-04 15:15:05,651 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3IntegerData(i=3) 2008-05-04 15:15:17,058 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeObject(o=ChannelMessage) 2008-05-04 15:15:28,875 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object(o=ChannelMessage)... 2008-05-04 15:15:31,088 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] indexOfStoredObjects(o=ChannelMessage) -> -1 2008-05-04 15:15:32,830 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredObjects(o=ChannelMessage) at index=6 2008-05-04 15:15:41,733 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - classGetter=org.granite.hibernate.HibernateClassGetter@8993c1 2008-05-04 15:15:44,998 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - oClass=class com.maxtrading.messaging.events.EventMessageEventTypeEnum 2008-05-04 15:15:48,002 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] getFromStoredClassDescriptors(clazz=class com.maxtrading.messaging.events.EventMessageEventTypeEnum) 2008-05-04 15:15:48,002 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] getFromStoredClassDescriptors() -> null 2008-05-04 15:15:51,057 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredClassDescriptors(clazz=class com.maxtrading.messaging.events.EventMessageEventTypeEnum) 2008-05-04 15:15:51,057 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredClassDescriptors() - putting: name="com.maxtrading.messaging.events.EventMessageEventTypeEnum", iDesc=org.granite.messaging.amf.io.util.IndexedJavaClassDescriptor@463932 2008-05-04 15:15:56,454 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3IntegerData(i=3) 2008-05-04 15:15:59,519 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3StringData(s="com.maxtrading.messaging.events.EventMessageEventTypeEnum") 2008-05-04 15:15:59,519 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] indexOfStoredStrings(s="com.maxtrading.messaging.events.EventMessageEventTypeEnum") -> -1 2008-05-04 15:15:59,519 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] addToStoredStrings(s="com.maxtrading.messaging.events.EventMessageEventTypeEnum") at index=14 2008-05-04 15:15:59,519 DEBUG [org.granite.messaging.amf.io.AMF3Serializer_MORE] writeAMF3IntegerData(i=115) 2008-05-04 15:16:01,351 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - desc=org.granite.messaging.amf.io.util.DefaultJavaClassDescriptor@463705 2008-05-04 15:16:03,304 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object() - writing defined properties... 2008-05-04 15:16:06,679 DEBUG [org.granite.messaging.amf.io.AMF3Serializer] writeAMF3Object(o=ChannelMessage) - Done --------------- The GAS-generator created this readExternal(..) function for the entity: override public function readExternal(input:IDataInput):void { super.readExternal(input); if (meta::isInitialized()) { _activationKey = input.readObject() as String; _email = input.readObject() as String; _enabled = input.readObject() as Boolean; line155-> _eventTypes = input.readObject() as ListCollectionView; _invoiceAccount = input.readObject() as Account; _invoices = input.readObject() as ListCollectionView; _loginKey = input.readObject() as String; _password = input.readObject() as String; _reasonNotEnabled = input.readObject() as String; _referrer = input.readObject() as User; _referreredUsers = input.readObject() as ListCollectionView; _sessionUUID = input.readObject() as String; _subscriptions = input.readObject() as ListCollectionView; _systemUser = input.readObject() as Boolean; _userDetails = input.readObject() as UserDetail; _userManagementDetails = input.readObject() as ListCollectionView; _userRoles = input.readObject() as ListCollectionView; _username = input.readObject() as String; } } Everything works fine, until I reach _eventTypes = input.readObject() as ListCollectionView; Here an exception is thrown: ArgumentError: Error #2004: One of the parameter ist invalid. at ObjectInput/readObject() at com.maxtrading.user.entities::UserBase/readExternal()[E:\Projekte\workspace\portal\web\st\generated\main\mxml\com\maxtrading\user\entities\UserBase.as:155] Can you please have a look at the problem or give me a hint what I can try at my side - I really would like to use your software package in my project. Thanks Frankk,
finally I got it to work. There were several issues to resolve the problem: - the granite-config.xml format has been changed, I tried took the latest one. - the compiler-options where wrong (e.g. in eclipse - I had to add the -include-libraries lib/granite.swc -include-libraries lib/granite-hibernate.swc to the compiler path. You can close this bug! |
||||||||||||||||||||||||||||||||||