Java Code Examples for javax.servlet.http.HttpServletResponse#SC_PARTIAL_CONTENT

The following examples show how to use javax.servlet.http.HttpServletResponse#SC_PARTIAL_CONTENT . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: vespa   File: ServletResponseController.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Async version of {@link org.eclipse.jetty.server.Response#sendError(int, String)}.
 */
private void sendErrorAsync(int statusCode, String reasonPhrase) {
    servletResponse.setHeader(HttpHeaders.Names.EXPIRES, null);
    servletResponse.setHeader(HttpHeaders.Names.LAST_MODIFIED, null);
    servletResponse.setHeader(HttpHeaders.Names.CACHE_CONTROL, null);
    servletResponse.setHeader(HttpHeaders.Names.CONTENT_TYPE, null);
    servletResponse.setHeader(HttpHeaders.Names.CONTENT_LENGTH, null);
    setStatus(servletResponse, statusCode, Optional.of(reasonPhrase));

    // If we are allowed to have a body
    if (statusCode != HttpServletResponse.SC_NO_CONTENT &&
            statusCode != HttpServletResponse.SC_NOT_MODIFIED &&
            statusCode != HttpServletResponse.SC_PARTIAL_CONTENT &&
            statusCode >= HttpServletResponse.SC_OK) {
        servletResponse.setHeader(HttpHeaders.Names.CACHE_CONTROL, "must-revalidate,no-cache,no-store");
        servletResponse.setContentType(MimeTypes.Type.TEXT_HTML_8859_1.toString());
        byte[] errorContent = errorResponseContentCreator
                .createErrorContent(servletRequest.getRequestURI(), statusCode, Optional.ofNullable(reasonPhrase));
        servletResponse.setContentLength(errorContent.length);
        servletOutputStreamWriter.sendErrorContentAndCloseAsync(ByteBuffer.wrap(errorContent));
    } else {
        servletResponse.setContentLength(0);
        servletOutputStreamWriter.close();
    }
}
 
Example 2
public ServerStatus _doIt() {
	try {
		
		// check the org first
		
		URI targetURI = URIUtil.toURI(target.getUrl());
		URI orgsURI = targetURI.resolve("/v2/organizations"); //$NON-NLS-1$

		GetMethod getOrgsMethod = new GetMethod(orgsURI.toString());
		ServerStatus confStatus = HttpUtil.configureHttpMethod(getOrgsMethod, target.getCloud());
		if (!confStatus.isOK())
			return confStatus;
		
		ServerStatus getOrgsStatus = HttpUtil.executeMethod(getOrgsMethod);
		if (!getOrgsStatus.isOK() && getOrgsStatus.getHttpCode() != HttpServletResponse.SC_PARTIAL_CONTENT)
			return getOrgsStatus;

		JSONObject result = getOrgsStatus.getJsonData();
		JSONArray orgs = result.getJSONArray("resources"); //$NON-NLS-1$

		if (orgs.length() == 0)
			return new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_NOT_FOUND, "Organization not found", null);

		Org organization = getOrganization(orgs, orgName);
		if (organization == null)
			return new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_NOT_FOUND, "Organization not found", null);
		
		// now get the space
		
		String spaceUrl = organization.getCFJSON().getJSONObject("entity").getString("spaces_url"); //$NON-NLS-1$//$NON-NLS-2$
		URI spaceURI = targetURI.resolve(spaceUrl);

		GetMethod getSpaceMethod = new GetMethod(spaceURI.toString());
		confStatus = HttpUtil.configureHttpMethod(getSpaceMethod, target.getCloud());
		if (!confStatus.isOK())
			return confStatus;

		ServerStatus getSpaceStatus = HttpUtil.executeMethod(getSpaceMethod);
		if (!getSpaceStatus.isOK())
			return getSpaceStatus;

		result = getSpaceStatus.getJsonData();
		JSONArray spaces = result.getJSONArray("resources"); //$NON-NLS-1$

		if (spaces.length() == 0)
			return new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_NOT_FOUND, "Space not found", null);

		Space space = getSpace(spaces, spaceName);
		if (space == null)
			return new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_NOT_FOUND, "Space not found", null);

		return new ServerStatus(Status.OK_STATUS, HttpServletResponse.SC_OK, space.toJSON());
	} catch (Exception e) {
		String msg = NLS.bind("An error occured when performing operation {0}", commandName); //$NON-NLS-1$
		logger.error(msg, e);
		return new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, msg, e);
	}
}
 
Example 3
Source Project: s3proxy   File: S3ProxyHandler.java    License: Apache License 2.0 4 votes vote down vote up
private void handleGetBlob(HttpServletRequest request,
        HttpServletResponse response, BlobStore blobStore,
        String containerName, String blobName)
        throws IOException, S3Exception {
    int status = HttpServletResponse.SC_OK;
    GetOptions options = new GetOptions();

    String ifMatch = request.getHeader(HttpHeaders.IF_MATCH);
    if (ifMatch != null) {
        options.ifETagMatches(ifMatch);
    }

    String ifNoneMatch = request.getHeader(HttpHeaders.IF_NONE_MATCH);
    if (ifNoneMatch != null) {
        options.ifETagDoesntMatch(ifNoneMatch);
    }

    long ifModifiedSince = request.getDateHeader(
            HttpHeaders.IF_MODIFIED_SINCE);
    if (ifModifiedSince != -1) {
        options.ifModifiedSince(new Date(ifModifiedSince));
    }

    long ifUnmodifiedSince = request.getDateHeader(
            HttpHeaders.IF_UNMODIFIED_SINCE);
    if (ifUnmodifiedSince != -1) {
        options.ifUnmodifiedSince(new Date(ifUnmodifiedSince));
    }

    String range = request.getHeader(HttpHeaders.RANGE);
    if (range != null && range.startsWith("bytes=") &&
            // ignore multiple ranges
            range.indexOf(',') == -1) {
        range = range.substring("bytes=".length());
        String[] ranges = range.split("-", 2);
        if (ranges[0].isEmpty()) {
            options.tail(Long.parseLong(ranges[1]));
        } else if (ranges[1].isEmpty()) {
            options.startAt(Long.parseLong(ranges[0]));
        } else {
            options.range(Long.parseLong(ranges[0]),
                    Long.parseLong(ranges[1]));
        }
        status = HttpServletResponse.SC_PARTIAL_CONTENT;
    }

    Blob blob = blobStore.getBlob(containerName, blobName, options);
    if (blob == null) {
        throw new S3Exception(S3ErrorCode.NO_SUCH_KEY);
    }

    response.setStatus(status);

    String corsOrigin = request.getHeader(HttpHeaders.ORIGIN);
    if (!Strings.isNullOrEmpty(corsOrigin) &&
            corsRules.isOriginAllowed(corsOrigin)) {
        response.addHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN,
                corsOrigin);
        response.addHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET");
    }

    addMetadataToResponse(request, response, blob.getMetadata());
    // TODO: handles only a single range due to jclouds limitations
    Collection<String> contentRanges =
            blob.getAllHeaders().get(HttpHeaders.CONTENT_RANGE);
    if (!contentRanges.isEmpty()) {
        response.addHeader(HttpHeaders.CONTENT_RANGE,
                contentRanges.iterator().next());
        response.addHeader(HttpHeaders.ACCEPT_RANGES,
                "bytes");
    }

    try (InputStream is = blob.getPayload().openStream();
         OutputStream os = response.getOutputStream()) {
        ByteStreams.copy(is, os);
        os.flush();
    }
}
 
Example 4
Source Project: scipio-erp   File: ICalWorker.java    License: Apache License 2.0 2 votes vote down vote up
/** Create an HTTP Partial Content response. The calendar converter will use this
 * response when a calendar is only partially updated.
 *
 * @param statusMessage A message describing which calendar components were
 * not updated
 * @return Create an HTTP Partial Content response.
 */
public static ResponseProperties createPartialContentResponse(String statusMessage) {
    return new ResponseProperties(HttpServletResponse.SC_PARTIAL_CONTENT, statusMessage);
}