opt some tri code (#11079)

* opt some code

* remove unused if

* fix npe
This commit is contained in:
earthchen 2022-12-07 20:11:15 +08:00 committed by GitHub
parent a795ff73df
commit 7cccc4f193
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 22 deletions

View File

@ -371,14 +371,6 @@ public class TripleServerStream extends AbstractStream implements ServerStream {
}
}
try {
final TriDecoder.Listener listener = new ServerDecoderListener();
deframer = new TriDecoder(deCompressor, listener);
} catch (Throwable t) {
responseErr(TriRpcStatus.INTERNAL.withCause(t));
return;
}
Map<String, Object> requestMetadata = headersToMap(headers);
boolean hasStub = pathResolver.hasNativeStub(path);
if (hasStub) {
@ -390,10 +382,9 @@ public class TripleServerStream extends AbstractStream implements ServerStream {
frameworkModel, acceptEncoding, serviceName, originalMethodName, filters,
executor);
}
// must before onHeader
deframer = new TriDecoder(deCompressor, new ServerDecoderListener(listener));
listener.onHeader(requestMetadata);
if (listener == null) {
deframer.close();
}
}
@ -427,21 +418,27 @@ public class TripleServerStream extends AbstractStream implements ServerStream {
.withDescription("Canceled by client ,errorCode=" + errorCode));
});
}
}
private class ServerDecoderListener implements TriDecoder.Listener {
@Override
public void onRawMessage(byte[] data) {
listener.onMessage(data);
}
private static class ServerDecoderListener implements TriDecoder.Listener {
@Override
public void close() {
if (listener != null) {
listener.onComplete();
}
}
private final ServerStream.Listener listener;
public ServerDecoderListener(ServerStream.Listener listener) {
this.listener = listener;
}
@Override
public void onRawMessage(byte[] data) {
listener.onMessage(data);
}
@Override
public void close() {
listener.onComplete();
}
}
}