Utána:
if ((contentLength == -1) || (contentLength > limit)) {
LOG.warn("Going to buffer response body of "
+contentLength+ " bytes (-1 means unknown)."
+" Limit is "+limit+" bytes."
+" Using getResponseBodyAsStream instead is recommended.");
}
Ezzel a fantasztikus fejlesztéssel kiderítettem, hogy a warning nem fog eltűnni, akármekkorára is növelem a limitet, mivel a hossz -1 (például a Transfer-Encoding: chunked miatt
)
PS: Már hallottam a String.format
-ról, csak hagyománytiszteletből nem akartam a -source 1.2 -target 1.2
opciókat elvenni.
- NevemTeve blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
Szerintem annyiból jogos, hogy ha potenciálisan végtelen nagy lehet az input - azaz a library által nincsen validálva - akkor az egészet betölteni egy pufferbe (amire utal a metódus neve) nem jó ötlet, mert ha a szerver túl nagy választ küld, akkor OOM lesz a vége. Persze ha saját magunk által feülgyelt szerverről van szó, nem "ellenséges" forrásról, akkor megengedhető lehet ilyen slendriánság. A helyes kezelési mód az, hogy streamként kérjük el, amit olvasás közben validálunk, hogy nem lett-e túl nagy. Vagy adhatna olyan API-t, ami maximálja, hogy mekkora body-t hajlandó betölteni RAM-ba.
- A hozzászóláshoz be kell jelentkezni
Hát lehet, hogy az újabb verziók flexibilisebbek, ez jó régi 3.1-es; itt most főleg az volt a kötözködni valóm, hogy még azt sem írta ki, hogy a hossz -1 (aka ismeretlen), szóval hiába is növelném a limitet, a warning nem fog eltűnni.
- A hozzászóláshoz be kell jelentkezni