public void service(final RequestAdapter request, final ResponseAdapter response) throws IOException { final OutputStream out = response.getOutputStream(); final ISocket fcgiSocket = connectionFactory.getConnection(); fcgiSocket.setSoTimeout((int) READ_TIMEOUT); try { synchronized (fcgiSocket) { handleRequest(request, response, fcgiSocket, out, keepAlive); } } finally { if (fcgiSocket != null) { connectionFactory.releaseConnection(fcgiSocket); } fcgiSocket.close(); } }