@Override public void handleException(TransportException e) { contextToRestore.restore(); innerHandler.handleException(e); }
@Override public void handleResponse(T response) { contextToRestore.restore(); innerHandler.handleResponse(response); }
@Override public String executor() { return innerHandler.executor(); } }
private void handleException(final TransportResponseHandler handler, Throwable error) { if (!(error instanceof RemoteTransportException)) { error = new RemoteTransportException(error.getMessage(), error); } final RemoteTransportException rtx = (RemoteTransportException) error; threadPool.executor(handler.executor()).execute(() -> { try { handler.handleException(rtx); } catch (Exception e) { logger.error(() -> new ParameterizedMessage("failed to handle exception response [{}]", handler), e); } }); }
private void handleResponse(StreamInput buffer, final TransportResponseHandler handler) { final TransportResponse response = handler.newInstance(); try { response.readFrom(buffer); } catch (Throwable e) { handleException(handler, new TransportSerializationException("Failed to deserialize response of type [" + response.getClass().getName() + "]", e)); return; } try { if (handler.executor().equals(ThreadPool.Names.SAME)) { handler.handleResponse(response); } else { threadPool.executor(handler.executor()).execute(new ResponseHandler(handler, response)); } } catch (Throwable e) { handleException(handler, new ResponseHandlerFailureTransportException(e)); } }
protected void handleParsedResponse(final TransportResponse response, final TransportResponseHandler handler) { threadPool.executor(handler.executor()).execute(() -> { try { handler.handleResponse(response); } catch (Exception e) { handleException(handler, new ResponseHandlerFailureTransportException(e)); } }); }
private <T extends TransportResponse> void handleResponse(InetSocketAddress remoteAddress, final StreamInput stream, final TransportResponseHandler<T> handler) { final T response; try { response = handler.read(stream); response.remoteAddress(new TransportAddress(remoteAddress)); } catch (Exception e) { handleException(handler, new TransportSerializationException( "Failed to deserialize response from handler [" + handler.getClass().getName() + "]", e)); return; } threadPool.executor(handler.executor()).execute(new AbstractRunnable() { @Override public void onFailure(Exception e) { handleException(handler, new ResponseHandlerFailureTransportException(e)); } @Override protected void doRun() throws Exception { handler.handleResponse(response); } }); }
private void handleResponse(InetSocketAddress remoteAddress, final StreamInput stream, final TransportResponseHandler handler) { final TransportResponse response = handler.newInstance(); response.remoteAddress(new InetSocketTransportAddress(remoteAddress)); try { response.readFrom(stream); } catch (Exception e) { handleException(handler, new TransportSerializationException( "Failed to deserialize response of type [" + response.getClass().getName() + "]", e)); return; } threadPool.executor(handler.executor()).execute(new AbstractRunnable() { @Override public void onFailure(Exception e) { handleException(handler, new ResponseHandlerFailureTransportException(e)); } @Override protected void doRun() throws Exception { handler.handleResponse(response); }}); }
@Override public V newInstance() { return handler.newInstance(); }
@Override public T read(StreamInput in) throws IOException { return innerHandler.read(in); }
private void handleException(final TransportResponseHandler handler, Throwable error) { if (!(error instanceof RemoteTransportException)) { error = new RemoteTransportException(error.getMessage(), error); } final RemoteTransportException rtx = (RemoteTransportException) error; if (handler.executor().equals(ThreadPool.Names.SAME)) { handler.handleException(rtx); } else { threadPool.executor(handler.executor()).execute(new Runnable() { @Override public void run() { try { handler.handleException(rtx); } catch (Exception e) { logger.error("Failed to handle exception response", e); } } }); } }
protected void handleResponse(Channel channel, StreamInput buffer, final TransportResponseHandler handler) { buffer = new NamedWriteableAwareStreamInput(buffer, transport.namedWriteableRegistry); final TransportResponse response = handler.newInstance(); response.remoteAddress(new InetSocketTransportAddress((InetSocketAddress) channel.getRemoteAddress())); response.remoteAddress(); try { response.readFrom(buffer); } catch (Throwable e) { handleException(handler, new TransportSerializationException("Failed to deserialize response of type [" + response.getClass().getName() + "]", e)); return; } try { if (ThreadPool.Names.SAME.equals(handler.executor())) { //noinspection unchecked handler.handleResponse(response); } else { threadPool.executor(handler.executor()).execute(new ResponseHandler(handler, response)); } } catch (Throwable e) { handleException(handler, new ResponseHandlerFailureTransportException(e)); } }
private void handleResponse(InetSocketAddress remoteAddress, final StreamInput stream, final TransportResponseHandler handler) { final TransportResponse response; try { response = handler.read(stream); response.remoteAddress(new TransportAddress(remoteAddress)); } catch (Exception e) { handleException(handler, new TransportSerializationException( "Failed to deserialize response from handler [" + handler.getClass().getName() + "]", e)); return; } threadPool.executor(handler.executor()).execute(new AbstractRunnable() { @Override public void onFailure(Exception e) { handleException(handler, new ResponseHandlerFailureTransportException(e)); } @Override protected void doRun() throws Exception { handler.handleResponse(response); } }); }
@Override public V newInstance() { return handler.newInstance(); }
@Override public T read(StreamInput in) throws IOException { return delegate.read(in); }
@Override protected void doRun() throws Exception { contextToNotify.handler().handleException(sendRequestException); } });
@Override protected void doRun() throws Exception { handler.handleResponse(response); } });
private void handleException(final TransportResponseHandler handler, Throwable error) { if (!(error instanceof RemoteTransportException)) { error = new RemoteTransportException(error.getMessage(), error); } final RemoteTransportException rtx = (RemoteTransportException) error; threadPool.executor(handler.executor()).execute(() -> { try { handler.handleException(rtx); } catch (Exception e) { logger.error((Supplier<?>) () -> new ParameterizedMessage("failed to handle exception response [{}]", handler), e); } }); }
@Override public String executor() { return handler.executor(); }
@Override public T newInstance() { return delegate.newInstance(); }