This is an automated email from the ASF dual-hosted git repository.

rainyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-hessian-lite.git


The following commit(s) were added to refs/heads/master by this push:
     new e108ca06 update deserialization to use float (#88)
e108ca06 is described below

commit e108ca06ad1be0f1b51ec53d97559055bb25eb5f
Author: Rain Yu <[email protected]>
AuthorDate: Wed Sep 10 20:14:54 2025 +0800

    update deserialization to use float (#88)
---
 .../hessian/io/FieldDeserializer2FactoryUnsafe.java       |  7 +++----
 .../alibaba/com/caucho/hessian/io/Hessian2ReuseTest.java  |  8 ++++++++
 .../alibaba/com/caucho/hessian/io/beans/BaseNumber.java   | 15 +++++++++++++++
 3 files changed, 26 insertions(+), 4 deletions(-)

diff --git 
a/hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/FieldDeserializer2FactoryUnsafe.java
 
b/hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/FieldDeserializer2FactoryUnsafe.java
index a48a4800..af9dfb54 100644
--- 
a/hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/FieldDeserializer2FactoryUnsafe.java
+++ 
b/hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/FieldDeserializer2FactoryUnsafe.java
@@ -388,12 +388,11 @@ public class FieldDeserializer2FactoryUnsafe extends 
FieldDeserializer2Factory {
 
         public void deserialize(AbstractHessianInput in, Object obj)
                 throws IOException {
-            double value = 0;
+            float value = 0;
 
             try {
-                value = in.readDouble();
-
-                _unsafe.putDouble(obj, _offset, value);
+                value = (float) in.readDouble();
+                _unsafe.putFloat(obj, _offset, value);
             } catch (Exception e) {
                 logDeserializeError(_field, obj, value, e);
             }
diff --git 
a/java-8-test/src/test/java/com/alibaba/com/caucho/hessian/io/Hessian2ReuseTest.java
 
b/java-8-test/src/test/java/com/alibaba/com/caucho/hessian/io/Hessian2ReuseTest.java
index 3110f629..d2718246 100644
--- 
a/java-8-test/src/test/java/com/alibaba/com/caucho/hessian/io/Hessian2ReuseTest.java
+++ 
b/java-8-test/src/test/java/com/alibaba/com/caucho/hessian/io/Hessian2ReuseTest.java
@@ -115,6 +115,14 @@ public class Hessian2ReuseTest extends SerializeTestBase {
         }
     }
 
+    @Test
+    public void testBaseNumber() throws IOException {
+        BaseNumber obj = new BaseNumber();
+        obj.setNumber(3.14f);
+        BaseNumber newObj = serializeAndDeserialize(obj, BaseNumber.class);
+        Assertions.assertEquals(obj.getNumber(), newObj.getNumber());
+    }
+
     @Test
     public void testType() throws IOException {
         serializeAndDeserialize(Type.Lower, Type.class);
diff --git 
a/java-8-test/src/test/java/com/alibaba/com/caucho/hessian/io/beans/BaseNumber.java
 
b/java-8-test/src/test/java/com/alibaba/com/caucho/hessian/io/beans/BaseNumber.java
new file mode 100644
index 00000000..dba6478e
--- /dev/null
+++ 
b/java-8-test/src/test/java/com/alibaba/com/caucho/hessian/io/beans/BaseNumber.java
@@ -0,0 +1,15 @@
+package com.alibaba.com.caucho.hessian.io.beans;
+
+import java.io.Serializable;
+
+public class BaseNumber implements Serializable {
+
+    private float number;
+    public float getNumber() {
+        return number;
+    }
+
+    public void setNumber(float number) {
+        this.number = number;
+    }
+}

Reply via email to