/** Consumer long-poll operations are enqueued here. */ public synchronized void registerSuspendedResponse(String graphId, Response response) { // Add this worker to our catalog, tracking its graph affinity and the last time it was seen. String workerId = response.getRequest().getHeader(AnalystWorker.WORKER_ID_HEADER); if (workerId != null && !workerId.isEmpty()) { workerCatalog.catalog(workerId, graphId); } else { LOG.error("Worker did not supply a unique ID for itself . Ignoring it."); return; } // Shelf this suspended response in a queue grouped by graph affinity. Deque<Response> deque = consumersByGraph.get(graphId); if (deque == null) { deque = new ArrayDeque<>(); consumersByGraph.put(graphId, deque); } deque.addLast(response); nWaitingConsumers += 1; // Wake up the delivery thread if it's waiting on consumers. // This is whatever thread called wait() while holding the monitor for this Broker object. notify(); }
if (!response.getRequest().getRequest().getConnection().isOpen()) { LOG.debug("Consumer connection was closed. It will be removed."); return false;
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { if (LOG.isDebugEnabled()) { try { final String rawQuery = requestContext.getUriInfo().getRequestUri().getRawQuery(); final Date requestDate = requestContext.getDate(); final String userName = RestTools.getUserNameFromRequest(requestContext); final String remoteAddress = RestTools.getRemoteAddrFromRequest(response.getRequest(), trustedProxies); final String userAgent = requestContext.getHeaderString(HttpHeaders.USER_AGENT); LOG.debug("{} {} [{}] \"{} {}{}\" {} {} {}", remoteAddress, userName == null ? "-" : userName, (requestDate == null ? "-" : requestDate), requestContext.getMethod(), requestContext.getUriInfo().getPath(), (rawQuery == null ? "" : "?" + rawQuery), (userAgent == null ? "-" : userAgent), responseContext.getStatus(), responseContext.getLength()); } catch (Exception e) { LOG.error("Error while processing REST API access log", e); } } } }
@Override public String format(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) try { field.format(builder, request, response, timeStamp, responseNanos); } catch (Exception exception) { LOGGER.log(WARNING, "Exception formatting access log entry", exception); builder.append('-'); } return builder.toString(); }
@Override public String format(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) try { field.format(builder, request, response, timeStamp, responseNanos); } catch (Exception exception) { LOGGER.log(WARNING, "Exception formatting access log entry", exception); builder.append('-'); } return builder.toString(); }
@Override public String format(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) try { field.format(builder, request, response, timeStamp, responseNanos); } catch (Exception exception) { LOGGER.log(WARNING, "Exception formatting access log entry", exception); builder.append('-'); } return builder.toString(); }
@Override public String format(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) try { field.format(builder, request, response, timeStamp, responseNanos); } catch (Exception exception) { LOGGER.log(WARNING, "Exception formatting access log entry", exception); builder.append('-'); } return builder.toString(); }
@Override public String format(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) try { field.format(builder, request, response, timeStamp, responseNanos); } catch (Exception exception) { LOGGER.log(WARNING, "Exception formatting access log entry", exception); builder.append('-'); } return builder.toString(); }
String unsafeFormat(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) { field.format(builder, request, response, timeStamp, responseNanos); } return builder.toString(); }
@Override public String format(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) try { field.format(builder, request, response, timeStamp, responseNanos); } catch (Exception exception) { LOGGER.log(WARNING, "Exception formatting access log entry", exception); builder.append('-'); } return builder.toString(); }
String unsafeFormat(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) { field.format(builder, request, response, timeStamp, responseNanos); } return builder.toString(); }
@Override public String format(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) try { field.format(builder, request, response, timeStamp, responseNanos); } catch (Exception exception) { LOGGER.log(WARNING, "Exception formatting access log entry", exception); builder.append('-'); } return builder.toString(); }
String unsafeFormat(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) { field.format(builder, request, response, timeStamp, responseNanos); } return builder.toString(); }
String unsafeFormat(Response response, Date timeStamp, long responseNanos) { final StringBuilder builder = new StringBuilder(); final Request request = response.getRequest(); for (Field field: fields) { field.format(builder, request, response, timeStamp, responseNanos); } return builder.toString(); }
NonBlockingDownloadHandler(final Response response, final NIOOutputStream outputStream, final InputStream inputStream, final int chunkSize) { this.response = response; this.outputStream = outputStream; this.inputStream = inputStream; mm = response.getRequest().getContext().getMemoryManager(); this.chunkSize = chunkSize; }
NonBlockingDownloadHandler(final Response response, final NIOOutputStream outputStream, final InputStream inputStream, final int chunkSize) { this.response = response; this.outputStream = outputStream; this.inputStream = inputStream; mm = response.getRequest().getContext().getMemoryManager(); this.chunkSize = chunkSize; }
NonBlockingDownloadHandler(final Response response, final NIOOutputStream outputStream, final InputStream inputStream, final int chunkSize) { this.response = response; this.outputStream = outputStream; this.inputStream = inputStream; mm = response.getRequest().getContext().getMemoryManager(); this.chunkSize = chunkSize; }
NonBlockingDownloadHandler(final Response response, final NIOOutputStream outputStream, final InputStream inputStream, final int chunkSize) { this.response = response; this.outputStream = outputStream; this.inputStream = inputStream; mm = response.getRequest().getContext().getMemoryManager(); this.chunkSize = chunkSize; }
NonBlockingDownloadHandler(final Response response, final NIOOutputStream outputStream, final InputStream inputStream, final int chunkSize) { this.response = response; this.outputStream = outputStream; this.inputStream = inputStream; mm = response.getRequest().getContext().getMemoryManager(); this.chunkSize = chunkSize; }
NonBlockingDownloadHandler(final Response response, final NIOOutputStream outputStream, final InputStream inputStream, final int chunkSize) { this.response = response; this.outputStream = outputStream; this.inputStream = inputStream; mm = response.getRequest().getContext().getMemoryManager(); this.chunkSize = chunkSize; }