apache / apache/apisix-java-plugin-runner

bug: PostRequest.getUpstreamHeaders cause IndexOutOfBoundsException Error

オープン
#325 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
152
フォーク
102
PR マージ指標
30日以内にマージされた PR はありません

説明

### Issue description

When call request.getUpstreamHeaders() in postFilter, sometimes may cause IndexOutOfBoundsException.

### Environment

apisix 3.9.0
apisix-java-plugin-runner 0.6.0

### Minimal test code / Steps to reproduce the issue

Not every time it happens, there is about 4 times happens of 10 .

```java
java.lang.IndexOutOfBoundsException: null
at java.base/java.nio.Buffer$1.apply(Buffer.java:757) ~[na:na]
at java.base/java.nio.Buffer$1.apply(Buffer.java:754) ~[na:na]
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213) ~[na:na]
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210) ~[na:na]
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98) ~[na:na]
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106) ~[na:na]
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302) ~[na:na]
at java.base/java.nio.Buffer.checkIndex(Buffer.java:779) ~[na:na]
at java.base/java.nio.DirectByteBuffer.getInt(DirectByteBuffer.java:761) ~[na:na]
at com.google.flatbuffers.Table.__vector_len(Table.java:125) ~[flatbuffers-java-2.0.0.jar!/:na]
at io.github.api7.A6.HTTPRespCall.Req.headersLength(Req.java:22) ~[A6-0.6.0-RELEASE.jar!/:na]
at org.apache.apisix.plugin.runner.PostRequest.getUpstreamHeaders(PostRequest.java:82) ~[apisix-runner-plugin-sdk-0.6.0.jar!/:0.6.0]
at gg.lita.arch.gateway.plugin.filters.LitaLoginResponseFilter.getPostRequestHeaders(LitaLoginResponseFilter.java:52) ~[!/:0.0.1]
```

also PluginFilter implements is

```java
@Override
public Boolean requiredBody() {
return false;
}

@Override
public Boolean requiredRespBody(){
return true;
}
```

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

### What's the expected result?

expect request.getUpstreamHeaders() can return normally.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。