apache / apisix-java-plugin-runner

APISIX Plugin Runner in Java
https://apisix.apache.org/
Apache License 2.0
130 stars 96 forks source link

bug: get config of ext plugin #301

Open wingyiu opened 8 months ago

wingyiu commented 8 months ago

Issue description

NPE when get config of ext plugin, then cause 503

@Override
    public Mono<Void> filter(HttpRequest request, HttpResponse response, PluginFilterChain chain) {

          String configStr = request.getConfig(this);
java.lang.IndexOutOfBoundsException: null
    at java.nio.Buffer.checkIndex(Buffer.java:546) ~[?:1.8.0_111]
    at java.nio.DirectByteBuffer.getInt(DirectByteBuffer.java:685) ~[?:1.8.0_111]
    at com.google.flatbuffers.Table.__vector_len(Table.java:125) ~[flatbuffers-java-1.12.0.jar!/:?]
    at io.github.api7.A6.PrepareConf.Req.confLength(Req.java:20) ~[A6-0.1.0-RELEASE.jar!/:?]
    at org.apache.apisix.plugin.runner.HttpRequest.getConfig(HttpRequest.java:61) ~[apisix-runner-plugin-sdk-0.1.0.jar!/:0.1.0]
    at org.apache.apisix.plugin.runner.filter.DeveloperPlatformSSOFilter.filter(DeveloperPlatformSSOFilter.java:72) ~[apisix-runner-plugin-0.1.0.jar!/:0.1.0]
    at org.apache.apisix.plugin.runner.filter.PluginFilterChain.filter(PluginFilterChain.java:54) ~[apisix-runner-plugin-sdk-0.1.0.jar!/:0.1.0]
    at org.apache.apisix.plugin.runner.handler.A6HttpCallHandler.handle(A6HttpCallHandler.java:57) ~[apisix-runner-core-0.1.0.jar!/:0.1.0]
    at org.apache.apisix.plugin.runner.handler.A6HandlerConfiguration.lambda$createDispatcher$0(A6HandlerConfiguration.java:76) ~[apisix-runner-core-0.1.0.jar!/:0.1.0]
    at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) [reactor-core-3.4.13.jar!/:3.4.13]
    at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:120) [reactor-core-3.4.13.jar!/:3.4.13]
    at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:119) [reactor-core-3.4.13.jar!/:3.4.13]

it looks like A6-0.1.0-RELEASE has bug

Environment

Minimal test code / Steps to reproduce the issue

1. 2. 3.

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

What's the expected result?