if (requestHandlingLog.isDebugEnabled()) { requestHandlingLog.debug("Dispatching request: " + request); }
    public WOResponse dispatchRequest(WORequest request) {        WOResponse response = null;        if (requestHandlingLog.isDebugEnabled()) {            requestHandlingLog.debug("Dispatching request: " + request);        }        try {            if(useComponentActionRedirection()) {                ERXComponentActionRedirector redirector = ERXComponentActionRedirector.redirectorForRequest(request);                if(redirector == null) {                    response = super.dispatchRequest(request);                    redirector = ERXComponentActionRedirector.currentRedirector();                    if(redirector != null) {                        response = redirector.redirectionResponse();                    }                } else {                    response = redirector.originalResponse();                }            } else {                response = super.dispatchRequest(request);            }        } finally {            // We always want to get rid of the wocontext key.            ERXThreadStorage.removeValueForKey("wocontext");            // We *always* want to unlock left over ECs.            ERXEC.unlockAllContextsForCurrentThread();        }        if (requestHandlingLog.isDebugEnabled()) {            requestHandlingLog.debug("Returning, encoding: " + response.contentEncoding() + " response: " + response);        }        	if (responseCompressionEnabled()) {	        String ct = response.headerForKey("content-type");		        if ((ct != null) && (ct.indexOf("text/") != -1)) {	            String accept = request.headerForKey("accept-encoding");		            if ((accept != null) && (accept.toLowerCase().indexOf("gzip") != -1)) {	                NSData ori = response.content();	                byte[] input = ori.bytes();		                long start = System.currentTimeMillis();		                byte[] compressedData = ERXCompressionUtilities.gzipByteArray(input);	                if (compressedData == null) {	                    //something went wrong	                } else {	                    response.setContent(new NSData(compressedData));		                    response.setHeader("" + compressedData.length, "content-length");		                    response.setHeader("gzip", "content-encoding");	                    log.debug("before: "+input.length+", after "+compressedData.length+", time: "+(System.currentTimeMillis() - start));	                }	            }	        }        	}        return response;    }