From 23df0fed5a8bb9d064388f922eff240d82b2046c Mon Sep 17 00:00:00 2001 From: wxm <115806199+youfanx@users.noreply.github.com> Date: Mon, 28 Aug 2023 15:41:37 +0800 Subject: [PATCH] up --- rxlib/src/main/java/org/rx/io/HybridStream.java | 9 +++++---- rxlib/src/main/java/org/rx/net/http/HttpClient.java | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/rxlib/src/main/java/org/rx/io/HybridStream.java b/rxlib/src/main/java/org/rx/io/HybridStream.java index 51c6f65b..e7691689 100644 --- a/rxlib/src/main/java/org/rx/io/HybridStream.java +++ b/rxlib/src/main/java/org/rx/io/HybridStream.java @@ -11,6 +11,8 @@ @Slf4j public final class HybridStream extends IOStream implements Serializable { private static final long serialVersionUID = 2137331266386948293L; + + public static final int NON_MEMORY_SIZE = 0; private final int maxMemorySize; private final String tempFilePath; private IOStream stream; @@ -66,11 +68,10 @@ public HybridStream(int maxMemorySize, boolean directMemory) { } public HybridStream(int maxMemorySize, boolean directMemory, String tempFilePath) { - if ((this.maxMemorySize = maxMemorySize) > Constants.MAX_HEAP_BUF_SIZE) { - log.warn("maxMemorySize gt {}", Constants.MAX_HEAP_BUF_SIZE); - } + this.maxMemorySize = Math.min(maxMemorySize, Constants.MAX_HEAP_BUF_SIZE); this.tempFilePath = tempFilePath; - stream = maxMemorySize <= 0 ? newFileStream() : new MemoryStream(maxMemorySize, directMemory); + //todo when memStream write len > MAX_HEAP_BUF_SIZE + stream = maxMemorySize <= NON_MEMORY_SIZE ? newFileStream() : new MemoryStream(maxMemorySize, directMemory); } @Override diff --git a/rxlib/src/main/java/org/rx/net/http/HttpClient.java b/rxlib/src/main/java/org/rx/net/http/HttpClient.java index 4ac4812d..d2848b63 100644 --- a/rxlib/src/main/java/org/rx/net/http/HttpClient.java +++ b/rxlib/src/main/java/org/rx/net/http/HttpClient.java @@ -198,7 +198,7 @@ public synchronized T handle(BiFunc fn) { } try { Long len = Reflects.changeType(response.header(HttpHeaderNames.CONTENT_LENGTH.toString()), Long.class); - stream = new HybridStream(len != null && len > Constants.MAX_HEAP_BUF_SIZE ? 0 : Constants.MAX_HEAP_BUF_SIZE, false); + stream = new HybridStream(len != null && len > Constants.MAX_HEAP_BUF_SIZE ? HybridStream.NON_MEMORY_SIZE : Constants.MAX_HEAP_BUF_SIZE, false); stream.write(body.byteStream()); } finally { body.close();