Hessian serialization mechanism converts Floats to Doubles
----------------------------------------------------------
Key: CAY-605
URL: http://issues.apache.org/cayenne/browse/CAY-605
Project: Cayenne
Type: Bug
Components: Cayenne Core Library
Versions: 1.2 [STABLE], 3.0
Reporter: Andrus Adamchik
Assigned to: Andrus Adamchik
Priority: Minor
Fix For: 1.2 [STABLE], 3.0
If an entity has a field defined as java.lang.Float, then sending a client object to the server, and then retrieving it back results in this exception:
java.lang.IllegalArgumentException
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:656)
at org.objectstyle.cayenne.property.FieldAccessor.writePropertyDirectly(FieldAccessor.java:115)
at org.objectstyle.cayenne.property.SimpleProperty.writePropertyDirectly(SimpleProperty.java:119)
at org.objectstyle.cayenne.property.SimpleProperty.writeProperty(SimpleProperty.java:90)
at org.objectstyle.cayenne.map.EntityDescriptor$SimplePersistentProperty.writeProperty(EntityDescriptor.java:341)
at org.objectstyle.cayenne.util.ObjectDetachOperation$1.visitProperty(ObjectDetachOperation.java:195)
at org.objectstyle.cayenne.property.SimpleProperty.visit(SimpleProperty.java:98)
at org.objectstyle.cayenne.property.BaseClassDescriptor.visitProperties(BaseClassDescriptor.java:250)
at org.objectstyle.cayenne.util.ObjectDetachOperation.detach(ObjectDetachOperation.java:134)
at org.objectstyle.cayenne.access.ClientServerChannelQueryAction.toClientObjects(ClientServerChannelQueryAction.java:221)
at org.objectstyle.cayenne.access.ClientServerChannelQueryAction.interceptObjectConversion(ClientServerChannelQueryAction.java:181)
at org.objectstyle.cayenne.access.ClientServerChannelQueryAction.execute(ClientServerChannelQueryAction.java:106)
at org.objectstyle.cayenne.access.ClientServerChannel.onQuery(ClientServerChannel.java:99)
at org.objectstyle.cayenne.remote.service.DispatchHelper.dispatch(DispatchHelper.java:76)
at org.objectstyle.cayenne.remote.service.BaseRemoteService.processMessage(BaseRemoteService.java:182)
As it turned out Hessian serializes Floats as Doubles... Will have to add a custom handler.
-- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/cayenne/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
This archive was generated by hypermail 2.0.0 : Sat Jul 22 2006 - 23:46:06 EDT