Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HttpPostRequestDecoder$ErrorDataDecoderException: java.io.IOException #12318

Open
EmiyaXzero opened this issue Apr 20, 2022 · 11 comments
Open

HttpPostRequestDecoder$ErrorDataDecoderException: java.io.IOException #12318

EmiyaXzero opened this issue Apr 20, 2022 · 11 comments

Comments

@EmiyaXzero
Copy link
Contributor

When using netty-all, I found that io.netty.handler.codec.http.multipart.HttpPostRequestDecoder$ErrorDataDecoderException: java.io.IOException: will appear if the = or & appears in the request message, it can only be solved by choosing the method of local coverage the parseBodyAttributes of the HttpPostStandardRequestDecoder class.

@fredericBregier
Copy link
Member

@EmiyaXzero Can you elaborate a bit, giving a real example (at least what is the full request content and how you're using Netty)?

@EmiyaXzero
Copy link
Contributor Author

@fredericBregier
我使用的netty的pom如下所示。

io.netty
netty-all
4.1.5.Final

当我的请求过大的时候,例如如下的curl请求,就会出现这个错误:Unable to create temporary file, /var/folders/w5/z6vgl5tj4k3cl8pmcsrxrnq40000gn/T/Attr_3530330210300977003,当将请求报文删除一半或者将=号去掉,请求也可以正常进行。

curl --location --request POST 'http://localhost:8080/test/hallCommon_test_smtOrderData'
--header 'User-Agent: apifox/1.0.0 (https://www.apifox.cn)'
--header 'Content-Type: application/json'
--data-raw '{"remarks":"户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】,户主入网时间:2014-10-11 10:38:45.0【推荐人/邀请码:】【子渠道(xxx),orgid=null,opid=xxxxxx,店主号码billid=xxxxxx】【新装:上门收费】【备注信息:】"}'

@EmiyaXzero
Copy link
Contributor Author

@fredericBregier
The pom I used for netty is shown below.

io.netty
netty-all
4.1.5.Final

When my request body is too big,such as previous comment,this error will occur:Unable to create temporary file, /var/folders/w5/z6vgl5tj4k3cl8pmcsrxrnq40000gn/T/Attr_3530330210300977003,but When the request message is deleted in half or the = sign is removed ,Requests can also proceed normally.

@fredericBregier
Copy link
Member

@EmiyaXzero Sorry, the logs are not very helpful since I'm not reading Chinese (sorry if I'm incorrect with the language).
However you have an "unable to create temporary file": this means you do have not enough space on your drive, leading to an obvious issue.
But what is the link with the "=" or "&" in the request? I don't get it.

Can you give us a simple example : body source and exception log trace ?

@EmiyaXzero
Copy link
Contributor Author

@fredericBregier
Thank you for taking the time to look at my question。I found the parseBodyAttributesStandard method in the HttpPostStandardRequestDecoder class,If there is a = sign or an & sign in the request message,will recalculate firstpos and initialize the currentAttribute object,When currentAttribute initializes successfully,The request text is reset in 475 lines,At the time of addContent in MixedAttribute,If the request length of the message exceeds THE SIZE 16KB in the DefaultHttpDataFactory,will reinitialize attribute to DiskAttribute,When performing addContent in DiskAttribute, you will choose to create a temporary file.This results in the Caused by: java.io.IOException: Unable to create temporary file error

@EmiyaXzero
Copy link
Contributor Author

@fredericBregier
When I continue to debug to see why the temporary file creation is not successful,It turned out to be because there was a / sign before the = sign,When creating a temporary file, the requested message is used as the temporary file name。But in java.io.File.TempDirectory#generateFile, File f = new File(dir, name)。If there is /will be considered to be the part of the dir in the name, that is, the file path (e.g. request message Zhang 3 / Li 4 = Wang 5), the name is Zhang San/Li Si = and the name of the temporary file is Li Si =,Thus the name and f's name inconsistencies throw an exception when name.equals(f.getName()) is judged

@EmiyaXzero
Copy link
Contributor Author

@fredericBregier
I tried the toFile method in the AbstractDiskHttpData class, let String diskFilename = getDiskFilename(); to String diskFilename = getDiskFilename().hashCode().toString() to solve this problem

@fredericBregier
Copy link
Member

@EmiyaXzero Could you put an "exact" POST command with the "real" content (full http), in order to be able to reproduce.
It can be url based (arguments as url arguments or body containing url encoded arguments) or multipart as body content. As you refer to HttpPostStandardRequestDecoder, it seems to be an url based one (as POST http://myapi/request?foo=bar&foo2=bar2 for instance).

With your example, it is a bit too "light" to see really the issue.
However if I understand, when name of the attribute is containing non ascii char, such as '/', it could lead to an issue when creating the temporary filename (since it will try to create a subdirectory below temp dir). Am I correct ?

@fredericBregier
Copy link
Member

@EmiyaXzero OK, I understand.
Your proposal seems correct. Could you propose a MR with this fix and a test that shows the fix?

@fredericBregier
Copy link
Member

@EmiyaXzero With one small change to your proposal: to prevent issue when diskFilename is null.

    String newpostfix;
    String diskFilename = getDiskFilename();
    if (diskFilename != null) {
        newpostfix = '_' + Integer.toString(diskFilename.hashCode());
    } else {
        newpostfix = getPostfix();
    }

@EmiyaXzero
Copy link
Contributor Author

@fredericBregier
Thank you I have submitted the merge request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants