Skip to content

Commit 1a4e7cd

Browse files
committed
Merge branch 'master' into improve-requset-context
2 parents 2fa92f6 + 6bfd0ff commit 1a4e7cd

File tree

2 files changed

+14
-14
lines changed
  • services-gateway/src/test/java/io/scalecube/services/gateway/files
  • services-transport-parent/services-transport-rsocket/src/main/java/io/scalecube/services/transport/rsocket

2 files changed

+14
-14
lines changed

services-gateway/src/test/java/io/scalecube/services/gateway/files/FileUploadTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ static void afterAll() {
8686
}
8787

8888
@ParameterizedTest(name = "Upload file of size {0} bytes")
89-
@ValueSource(longs = {64, 512, 1024, 1024 * 1024, 10 * 1024 * 1024})
89+
@ValueSource(longs = {0, 64, 512, 1024, 1024 * 1024, 10 * 1024 * 1024})
9090
public void uploadSuccessfully(long fileSize) throws Exception {
9191
final var client = new OkHttpClient();
9292
final var file = generateFile(Files.createTempFile("export_report_", null), fileSize);

services-transport-parent/services-transport-rsocket/src/main/java/io/scalecube/services/transport/rsocket/ServiceMessageCodec.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -138,16 +138,11 @@ public ServiceMessage decode(ByteBuf dataBuffer, ByteBuf headersBuffer)
138138
throws MessageCodecException {
139139
ServiceMessage.Builder builder = ServiceMessage.builder();
140140

141-
if (dataBuffer.isReadable()) {
142-
builder.data(dataBuffer);
143-
}
144-
if (headersBuffer.isReadable()) {
145-
try (ByteBufInputStream stream = new ByteBufInputStream(headersBuffer, true)) {
146-
builder.headers(headersCodec.decode(stream));
147-
} catch (Throwable ex) {
148-
safestRelease(dataBuffer); // release data buf as well
149-
throw new MessageCodecException("Failed to decode service message headers", ex);
150-
}
141+
try (ByteBufInputStream stream = new ByteBufInputStream(headersBuffer, true)) {
142+
builder.headers(headersCodec.decode(stream)).data(dataBuffer);
143+
} catch (Throwable ex) {
144+
safestRelease(dataBuffer); // release data buf as well
145+
throw new MessageCodecException("Failed to decode service message headers", ex);
151146
}
152147

153148
return builder.build();
@@ -173,15 +168,20 @@ public static ServiceMessage decodeData(
173168
}
174169

175170
final ByteBuf dataBuffer = message.data();
176-
if (dataBuffer.readableBytes() == 0) {
177-
return message;
178-
}
171+
179172
if (dataType == byte[].class) {
180173
final var bytes = new byte[dataBuffer.readableBytes()];
181174
dataBuffer.getBytes(dataBuffer.readerIndex(), bytes);
175+
if (!copyOnDecode) {
176+
safestRelease(dataBuffer);
177+
}
182178
return ServiceMessage.from(message).data(bytes).build();
183179
}
184180

181+
if (dataBuffer.readableBytes() == 0) {
182+
return ServiceMessage.from(message).data(null).build();
183+
}
184+
185185
try (ByteBufInputStream inputStream =
186186
copyOnDecode
187187
? new ByteBufInputStream(Unpooled.copiedBuffer(dataBuffer))

0 commit comments

Comments
 (0)