apache / apache/apisix-java-plugin-runner

bug: Why write confToken twice when writing back to API SIX

Aberta
#320 1 comentário 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Java
Estrelas
152
Forks
102
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

### Issue description
Why write confToken twice when writing back to API SIX

### Environment
jdk11

* your apisix-java-plugin-runner version
0.5
### Minimal test code / Steps to reproduce the issue
protected void channelRead0(ChannelHandlerContext ctx, A6Request request) {
if (request.getType() != Constants.RPC_PREPARE_CONF) {
ctx.fireChannelRead(request);
return;
}

Req req = ((A6ConfigRequest) request).getReq();
long confToken = ThreadLocalRandom.current().nextInt(Integer.MAX_VALUE);
A6Response response = new A6ConfigResponse(confToken);
long token = ((A6ConfigResponse) response).getConfToken();
PluginFilterChain chain = createFilterChain(req);

/*
* to reset vtable_start and vtable_size of req,
* so that req can be reused after being got from the cache.
* {@link org.apache.apisix.plugin.runner.handler.A6HttpCallHandler#handle cache.getIfPresent()}
* @see https://github.com/apache/apisix-java-plugin-runner/issues/63
* */
Map config = new HashMap<>();
for (int i = 0; i < req.confLength(); i++) {
TextEntry conf = req.conf(i);
config.put(conf.name(), conf.value());
}
A6Conf a6Conf = new A6Conf(config, chain);
cache.put(token, a6Conf);
for (A6ConfigWatcher watcher : watchers) {
watcher.watch(token, a6Conf);
}
ctx.write(response);
ctx.writeAndFlush(response);
}

### What's the actual result? (including assertion message & call stack if applicable)

### What's the expected result?

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.