Как справиться с ошибкой исчерпания ресурсов CWE-400-Resource

Мы получаем исключение IBM APPSCAN для следующего кода.

{
    br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
}
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
    sb.append(line+"\n");
}
br.close(); 

Может кто-нибудь предложить способ справиться с тем же.


person Subhranil Sengupta    schedule 19.06.2018    source источник


Ответы (1)


Я сам нашел решение для этого.

Просто нам нужно ограничить количество символов, читаемых функцией readline(). нет возможности ограничить то же самое, поэтому нам нужно использовать BoundedBufferedReader.

Попробуйте следующее:

{
    br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
}
StringBuilder sb = new StringBuilder();
String line;
BoundedBufferedReader boundedReader = new BoundedBufferedReader(br,204800,204800);
                   while (( line = boundedReader.readLine() ) != null) {
                       sb.append(line+"\n");
                   }
br.close();
person Subhranil Sengupta    schedule 20.06.2018
comment
В каком пакете/библиотеке у вас есть этот BoundedBufferedReader? - person TMG; 18.02.2020
comment
.. или вы скорее имели в виду org.apache.commons.io.input.BoundedReader? - person TMG; 18.02.2020