Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ed98c8d

Browse files
committed
Kryo doesn't work since bump up a newer version
1 parent 9d88d76 commit ed98c8d

File tree

4 files changed

+20
-40
lines changed

4 files changed

+20
-40
lines changed

lightningrpc-benchmark/src/main/java/info/minzhou/lightning/rpc/benchmark/RequestObjectSerializer.java

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,23 @@
44
import com.esotericsoftware.kryo.Serializer;
55
import com.esotericsoftware.kryo.io.Input;
66
import com.esotericsoftware.kryo.io.Output;
7+
import com.esotericsoftware.kryo.serializers.DefaultArraySerializers;
78

89
/**
910
* RequestObject Serializer
1011
*
1112
*/
1213
public class RequestObjectSerializer extends Serializer<RequestObject> {
13-
/**
14-
* @param kryo
15-
* @param output
16-
* @param reqObject
17-
*/
18-
@Override
19-
public void write(Kryo kryo, Output output, RequestObject reqObject) {
20-
byte[] content = reqObject.getBytes();
21-
output.write(content);
22-
}
14+
private DefaultArraySerializers.ByteArraySerializer delegate = new DefaultArraySerializers.ByteArraySerializer();
2315

24-
/**
25-
* @param kryo
26-
* @param input
27-
* @param type
28-
* @return
29-
*/
30-
public RequestObject create(Kryo kryo, Input input, Class<RequestObject> type) {
31-
return new RequestObject(input.getBuffer().length - 1);
32-
}
16+
@Override
17+
public void write(Kryo kryo, Output output, RequestObject reqObject) {
18+
delegate.write(kryo, output, reqObject.getBytes());
19+
}
3320

3421
@Override
3522
public RequestObject read(Kryo kryo, Input input, Class<RequestObject> type) {
36-
return kryo.readObjectOrNull(input, type);
23+
byte[] bytes = delegate.read(kryo, input, byte[].class);
24+
return new RequestObject(bytes);
3725
}
3826
}

lightningrpc-benchmark/src/main/java/info/minzhou/lightning/rpc/benchmark/ResponseObject.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ public ResponseObject(int size){
1515
bytes = new byte[size];
1616
}
1717

18+
public ResponseObject(byte[] bytes){
19+
this.bytes = bytes;
20+
}
1821
public byte[] getBytes() {
1922
return bytes;
2023
}

lightningrpc-benchmark/src/main/java/info/minzhou/lightning/rpc/benchmark/ResponseObjectSerializer.java

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,25 @@
44
import com.esotericsoftware.kryo.Serializer;
55
import com.esotericsoftware.kryo.io.Input;
66
import com.esotericsoftware.kryo.io.Output;
7+
import com.esotericsoftware.kryo.serializers.DefaultArraySerializers;
78

89
/**
910
* ResponseObject Serializer
1011
*
1112
*/
1213
public class ResponseObjectSerializer extends Serializer<ResponseObject> {
13-
/**
14-
* @param kryo
15-
* @param output
16-
* @param resObject
17-
*/
18-
@Override
19-
public void write(Kryo kryo, Output output, ResponseObject resObject) {
20-
byte[] content = resObject.getBytes();
21-
output.write(content);
22-
}
2314

24-
/**
25-
* @param kryo
26-
* @param input
27-
* @param type
28-
* @return
29-
*/
30-
public ResponseObject create(Kryo kryo, Input input, Class<ResponseObject> type) {
31-
return new ResponseObject(input.getBuffer().length - 1);
15+
private DefaultArraySerializers.ByteArraySerializer delegate = new DefaultArraySerializers.ByteArraySerializer();
16+
17+
@Override
18+
public void write(Kryo kryo, Output output, ResponseObject resObject) {
19+
delegate.write(kryo, output, resObject.getBytes());
3220
}
3321

3422
@Override
3523
public ResponseObject read(Kryo kryo, Input input,
3624
Class<ResponseObject> type) {
37-
return kryo.readObjectOrNull(input, type);
25+
byte[] bytes = delegate.read(kryo, input, byte[].class);
26+
return new ResponseObject(bytes);
3827
}
3928
}

lightningrpc-common/src/main/java/info/minzhou/lightning/rpc/protocol/KryoEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class KryoEncoder implements Encoder {
1414
*/
1515
@Override
1616
public byte[] encode(Object object) throws Exception {
17-
Output output = new Output(256);
17+
Output output = new Output(256, Integer.MAX_VALUE);
1818
KryoUtils.getKryo().writeClassAndObject(output, object);
1919
return output.toBytes();
2020
}

0 commit comments

Comments
 (0)