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;
+ }
+}