record200(url, in, lastModified, request, response);
record200(url, in, size, lastModified, request, response);
    protected void doGet(HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException {        String url = request.getRequestURI();        String contextPath = request.getContextPath();        if (contextPath != null) {            url = url.substring(contextPath.length());        }        String servletPath = request.getServletPath();        if (servletPath != null) {            url = url.substring(servletPath.length());        }        int idx = url.indexOf('/');        if (idx >= 0) {            url = url.substring(idx + 1);        }        if (repositoryVersion != null) {            String version = null;            if (BUILD_ID_VERSION_SUPPORT) {                idx = url.indexOf('/');                if (idx < 0) {                    response.setStatus(HttpServletResponse.SC_NOT_FOUND);                    return;                }                version = url.substring(0, idx);                url = url.substring(idx + 1);            } else {                URIParameters up = URIParameters.parseURI(url);                if (up != null) {                    version = up.getVersion();                    url = up.getURI();                }            }            if (version != null) {                String repositoryVersion = getRepository().getVersion();                if (repositoryVersion != null) {                    if (repositoryVersion.equals(version) == false) {                        LOG.error("Not same repository version ! (current="                                + repositoryVersion + " request=" + version                                + ")");                        setNoCache(response);                        response.setStatus(HttpServletResponse.SC_CONFLICT);                        return;                    }                }            }        }        Response res;        synchronized (bufferedResponse) {            res = (Response) bufferedResponse.get(url);            if (noCache == false) {                if (res != null) {                    res.send(request, response);                    return;                }            }        }        synchronized (this) {            synchronized (bufferedResponse) {                res = (Response) bufferedResponse.get(url);                if (res != null) {                    if (noCache == false) {                        res.send(request, response);                        return;                    }                    if (CAMELIA_CSS.equals(url)) {                        res.send(request, response);                        return;                    }                }                if (CAMELIA_CSS.equals(url)) {                    res = new StyleSheetRepositoryResponse(CSS_MIME_TYPE,                            getRepository());                    if (noCache == false) {                        bufferedResponse.put(CAMELIA_CSS, res);                    }                    res.send(request, response);                    return;                }            }            URL resourceURL = getClass().getClassLoader().getResource(                    BASE_DIRECTORY + url);            if (resourceURL == null) {                record404(url, response);                return;            }            URLConnection urlConnection = resourceURL.openConnection();            if (urlConnection == null) {                record404(url, response);                return;            }            long lastModified = urlConnection.getLastModified();            InputStream in = urlConnection.getInputStream();            if (in == null) {                record404(url, response);                return;            }            try {                record200(url, in, lastModified, request, response);                return;            } finally {                try {                    in.close();                } catch (IOException ex) {                    log("Can not close pipe '" + in + "'", ex);                }            }        }    }