leyuuu opened a new issue #112:
URL: https://github.com/apache/apisix-java-plugin-runner/issues/112


   ### Issue description
   ```
   java.lang.IndexOutOfBoundsException: null
           at java.nio.Buffer.checkIndex(Buffer.java:693) ~[?:?]
           at java.nio.DirectByteBuffer.getInt(DirectByteBuffer.java:758) ~[?:?]
           at com.google.flatbuffers.Table.__vector_len(Table.java:125) 
~[flatbuffers-java-2.0.0.jar!/:?]
           at io.github.api7.A6.HTTPReqCall.Req.headersLength(Req.java:37) 
~[A6-0.3.0-RELEASE.jar!/:?]
           at 
org.apache.apisix.plugin.runner.HttpRequest.getHeader(HttpRequest.java:141) 
~[apisix-runner-plugin-sdk-0.1.0.jar!/:0.1.0]
           at 
org.apache.apisix.plugin.runner.HttpRequest.getHeader(HttpRequest.java:164) 
~[apisix-runner-plugin-sdk-0.1.0.jar!/:0.1.0]
           at org.apache.apisix.plugin.runner.filter.Test.filter(Test.java:41) 
~[apisix-runner-plugin-0.1.0.jar!/:0.1.0]
           at 
org.apache.apisix.plugin.runner.filter.PluginFilterChain.filter(PluginFilterChain.java:53)
 ~[apisix-runner-plugin-sdk-0.1.0.jar!/:0.1.0]
           at 
org.apache.apisix.plugin.runner.handler.HTTPReqCallHandler.doFilter(HTTPReqCallHandler.java:121)
 ~[apisix-runner-core-0.1.0.jar!/:0.1.0]
           at 
org.apache.apisix.plugin.runner.handler.HTTPReqCallHandler.handleExtraInfo(HTTPReqCallHandler.java:105)
 ~[apisix-runner-core-0.1.0.jar!/:0.1.0]
           at 
org.apache.apisix.plugin.runner.handler.HTTPReqCallHandler.channelRead0(HTTPReqCallHandler.java:78)
 [apisix-runner-core-0.1.0.jar!/:0.1.0]
           at 
org.apache.apisix.plugin.runner.handler.HTTPReqCallHandler.channelRead0(HTTPReqCallHandler.java:51)
 [apisix-runner-core-0.1.0.jar!/:0.1.0]
           at 
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
org.apache.apisix.plugin.runner.handler.PrepareConfHandler.channelRead0(PrepareConfHandler.java:55)
 [apisix-runner-core-0.1.0.jar!/:0.1.0]
           at 
org.apache.apisix.plugin.runner.handler.PrepareConfHandler.channelRead0(PrepareConfHandler.java:44)
 [apisix-runner-core-0.1.0.jar!/:0.1.0]
           at 
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
org.apache.apisix.plugin.runner.handler.PayloadDecoder.channelRead0(PayloadDecoder.java:44)
 [apisix-runner-core-0.1.0.jar!/:0.1.0]
           at 
org.apache.apisix.plugin.runner.handler.PayloadDecoder.channelRead0(PayloadDecoder.java:37)
 [apisix-runner-core-0.1.0.jar!/:0.1.0]
           at 
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:271) 
[netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.epoll.EpollDomainSocketChannel$EpollDomainUnsafe.epollInReady(EpollDomainSocketChannel.java:138)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) 
[netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) 
[netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
[netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 [netty-all-4.1.63.Final.jar!/:4.1.63.Final]
           at java.lang.Thread.run(Thread.java:829) [?:?]
   ```
   
   
   ```
   @Component
   public class Test implements PluginFilter {
   
       private final Logger logger = LoggerFactory.getLogger(Test.class);
   
       @Override
       public String name() {
           return "Test";
       }
   
       @Override
       public void filter(HttpRequest request, HttpResponse response, 
PluginFilterChain chain) {
           String auth = request.getHeader("authorization");
           chain.filter(request, response);
       }
   
       /**
        * If you need to fetch some Nginx variables in the current plugin, you 
will need to declare them in this function.
        * @return a list of Nginx variables that need to be called in this 
plugin
        */
       @Override
       public List<String> requiredVars() {
           List<String> vars = new ArrayList<>();
           vars.add("remote_addr");
           vars.add("server_port");
           vars.add("route_id");
           return vars;
       }
   
       /**
        * If you need to fetch request body in the current plugin, you will 
need to return true in this function.
        */
       @Override
       public Boolean requiredBody() {
           return false;
       }
   }
   
   ```
   ### Environment
   
   * your apisix-java-plugin-runner version
   * 0.1.0 Commits on Jan 4, 2022
   
   Apisix environment:
   - apache/apisix-dashboard:2.10.1-alpine with openjdk11 container
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to