๋์ ๋ฆฌ์คํธ ๋ฐ์ธ๋ฉ ๋ฌธ์ ํด๊ฒฐํ๊ธฐ (java.lang.IndexOutOfBoundsException: Index: 256, Size: 256)
๐ ๋ฐฐ๊ฒฝ
ํ ํ์ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ก ๊ตฌํํ๋๋ฐ, ๋๋ ์ ๋ฐ์ดํธ ๊ณผ์ ์์ ๋์ ๋ฆฌ์คํธ ๋ฐ์ธ๋ฉ ๋ฌธ์ ๋ฅผ ๋ง์ฃผ์น๊ฒ ๋์๋ค. ๋ฐ์ดํฐ๊ฐ 256๊ฐ ์ด์์ด ๋์ด๊ฐ๋ IndexOutOfBoundsException์ด ๋ฐ์ํ๊ฒ ๋ ๊ฒ์ด๋ค.
๐ ์์ธ
์คํ๋ง์์๋ DataBinder ์์ ๋์ ๋ฆฌ์คํธ ๋ฐ์ธ๋ฉ์ ๊ธฐ๋ณธ์ค์ ์ต๋ ํฌ๊ธฐ๊ฐ 256๊ฐ๋ก ์ ํ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ๋ฌธ์ ์ด๋ค. DataBinder ํด๋์ค๋ฅผ ์ฐพ์๋ณด๋ฉด ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด ๊ธฐ๋ณธ ์ ํ์ด 256์ผ๋ก ์ค์ ๋์ด ์๋ค.
โ๏ธ ํด๊ฒฐ
์ค์ ์์ ๋ฌธ์ ์ด๋ฏ๋ก ์ปฌ๋ ์ ์ ์ ํ ํฌ๊ธฐ๋ฅผ ๋๋ ค์ฃผ๋ฉด ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ์ปจํธ๋กค๋ฌ ํด๋์ค์ ํด๋น ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค.
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setAutoGrowNestedPaths(true);
binder.setAutoGrowCollectionLimit(5000);
}
setAutoGrowNestedPaths
- true์ธ ๊ฒฝ์ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ธ๋ฑ์ค์ ์ก์ธ์คํ ๋ ์ปฌ๋ ์ ์์์ ์๋ ์ฆ๊ฐ๋ฅผ ํ์ฑํํด ์ค๋ค.
setAutoGrowCollectionLimit
- ๊ธฐ๋ณธ๊ฐ์ 256์ด๋ฉฐ, ๋ฐฐ์ด ๋ฐ ์ปฌ๋ ์ ์๋ ์ฆ๊ฐ์ ๋ํ ์ ํ์ ์ง์ ํ๋ค.
REFERENCE