You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2022/06/29 05:56:36 UTC
[dubbo] branch master updated: fix memory leak (#10231)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 7a0c805487 fix memory leak (#10231)
7a0c805487 is described below
commit 7a0c80548712d2a6094838a3b9a65eb9baa1aa60
Author: 一个不知名的Java靓仔 <cl...@gmail.com>
AuthorDate: Wed Jun 29 13:56:24 2022 +0800
fix memory leak (#10231)
---
.../dubbo/common/serialize/hessian2/Hessian2ObjectInput.java | 12 +++---------
.../common/serialize/hessian2/Hessian2ObjectOutput.java | 12 +++---------
2 files changed, 6 insertions(+), 18 deletions(-)
diff --git a/dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectInput.java b/dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectInput.java
index 2729e6ed37..9855c1acdf 100644
--- a/dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectInput.java
+++ b/dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectInput.java
@@ -31,18 +31,12 @@ import java.lang.reflect.Type;
*/
public class Hessian2ObjectInput implements ObjectInput, Cleanable {
- private static ThreadLocal<Hessian2Input> INPUT_TL = ThreadLocal.withInitial(() -> {
- Hessian2Input h2i = new Hessian2Input(null);
- h2i.setSerializerFactory(Hessian2FactoryInitializer.getInstance().getSerializerFactory());
- h2i.setCloseStreamOnClose(true);
- return h2i;
- });
-
private final Hessian2Input mH2i;
public Hessian2ObjectInput(InputStream is) {
- mH2i = INPUT_TL.get();
- mH2i.init(is);
+ mH2i = new Hessian2Input(is);
+ mH2i.setSerializerFactory(Hessian2FactoryInitializer.getInstance().getSerializerFactory());
+ mH2i.setCloseStreamOnClose(true);
}
@Override
diff --git a/dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectOutput.java b/dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectOutput.java
index 874a2c8b21..31bccf1f51 100644
--- a/dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectOutput.java
+++ b/dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectOutput.java
@@ -30,18 +30,12 @@ import java.io.OutputStream;
*/
public class Hessian2ObjectOutput implements ObjectOutput, Cleanable {
- private static ThreadLocal<Hessian2Output> OUTPUT_TL = ThreadLocal.withInitial(() -> {
- Hessian2Output h2o = new Hessian2Output(null);
- h2o.setSerializerFactory(Hessian2FactoryInitializer.getInstance().getSerializerFactory());
- h2o.setCloseStreamOnClose(true);
- return h2o;
- });
-
private final Hessian2Output mH2o;
public Hessian2ObjectOutput(OutputStream os) {
- mH2o = OUTPUT_TL.get();
- mH2o.init(os);
+ mH2o = new Hessian2Output(os);
+ mH2o.setSerializerFactory(Hessian2FactoryInitializer.getInstance().getSerializerFactory());
+ mH2o.setCloseStreamOnClose(true);
}
@Override