apache / apache/apisix-java-plugin-runner

bug: PostRequest.getUpstreamHeaders cause IndexOutOfBoundsException Error

Open
#325 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
152
Forks
102
PR merge metrics
No merged PRs in 30d

Description

### 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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.