if (bytes == null) {
final InputStream is;
if (!skipFiltering && invoker != defaultInvoker) { // resource is filtered so filtering it before caching it
final StringWriter writer = new StringWriter();
final PrintWriter printWriter = new PrintWriter(writer);
invoker.invoke(httpRequest, HttpServletResponse.class.cast(Proxy.newProxyInstance(classloader, new Class<?>[]{HttpServletResponse.class}, new InvocationHandler() {
@Override
public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
if ("getWriter".equals(method.getName())) {
return printWriter;
}