private void hackBufferFields(int buffersize, MessageConstraints messageConstraints, CharsetDecoder chardecoder, HttpMessageParserFactory<HttpResponse> responseParserFactory) { if (!_hackFiledGot) return; try { SessionInputBufferImpl old = (SessionInputBufferImpl) _sessionInputBufferField.get(this); _sessionInputBufferImpl = new TracingSessionInputBufferImpl((HttpTransportMetricsImpl) old.getMetrics(), buffersize, -1, messageConstraints != null ? messageConstraints : MessageConstraints.DEFAULT, chardecoder, _logFunc); _sessionInputBufferField.set(this, _sessionInputBufferImpl); HttpMessageParser<HttpResponse> responseParser = (responseParserFactory != null ? responseParserFactory : DefaultHttpResponseParserFactory.INSTANCE) .create(getSessionInputBuffer(), messageConstraints); _responseParserField.set(this, responseParser); } catch (Exception ex) { _logger.warn("Hack fields failed.", ex); } }