Skip to content

Commit e4a09eb

Browse files
committed
fix(ZipServant): ref count issue
1 parent ad4d9b5 commit e4a09eb

1 file changed

Lines changed: 6 additions & 10 deletions

File tree

src/main/kotlin/net/ccbluex/netty/http/rest/ZipServant.kt

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ package net.ccbluex.netty.http.rest
2222
import io.netty.buffer.ByteBuf
2323
import io.netty.buffer.Unpooled
2424
import io.netty.handler.codec.http.DefaultFullHttpResponse
25+
import io.netty.handler.codec.http.DefaultHttpHeaders
2526
import io.netty.handler.codec.http.EmptyHttpHeaders
2627
import io.netty.handler.codec.http.FullHttpResponse
2728
import io.netty.handler.codec.http.HttpHeaderNames
2829
import io.netty.handler.codec.http.HttpResponseStatus
2930
import io.netty.handler.codec.http.HttpVersion
30-
import io.netty.handler.codec.http.ReadOnlyHttpHeaders
3131
import net.ccbluex.netty.http.util.httpNotFound
3232
import net.ccbluex.netty.http.model.RequestObject
3333
import org.apache.tika.Tika
@@ -59,19 +59,15 @@ class ZipServant(part: String, zipInputStream: InputStream) : Node(part) {
5959
val data: ByteBuf,
6060
val isDirectory: Boolean,
6161
) {
62-
private val headers =
63-
ReadOnlyHttpHeaders(
64-
false,
65-
HttpHeaderNames.CONTENT_TYPE, tika.detect(name),
66-
HttpHeaderNames.CONTENT_LENGTH, data.readableBytes().toString(),
67-
)
68-
6962
fun toResponse(): FullHttpResponse {
7063
return DefaultFullHttpResponse(
7164
HttpVersion.HTTP_1_1,
7265
HttpResponseStatus.OK,
73-
data.duplicate(),
74-
headers,
66+
data.retainedDuplicate(),
67+
DefaultHttpHeaders().apply {
68+
this[HttpHeaderNames.CONTENT_TYPE] = tika.detect(name)
69+
this[HttpHeaderNames.CONTENT_LENGTH] = data.readableBytes().toString()
70+
},
7571
EmptyHttpHeaders.INSTANCE,
7672
)
7773
}

0 commit comments

Comments
 (0)