protected RemoteTransportException wrapInRemote(Exception e) { if (e instanceof RemoteTransportException) { return (RemoteTransportException) e; } return new RemoteTransportException(localNode.getName(), localNode.getAddress(), action, e); }
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); } }); }
@Override public void onFailure(Exception e) { RemoteTransportException exception = new RemoteTransportException("error while communicating with remote cluster [" + clusterName + "]", e); if (transportException.compareAndSet(null, exception) == false) { exception = transportException.accumulateAndGet(exception, (previous, current) -> { current.addSuppressed(previous); return current; }); } if (responsesCountDown.countDown()) { listener.onFailure(exception); } } });
throw corruptIndexException; } else { // corruption has happened on the way to replica RemoteTransportException exception = new RemoteTransportException("File corruption occurred on recovery but " + "checksums are ok", null); exception.addSuppressed(e);
RemoteTransportException exception = new RemoteTransportException("File corruption occurred on recovery but " + "checksums are ok", null); exception.addSuppressed(targetException);
private void handleException(final TransportResponseHandler handler, Exception exception) { if (!(exception instanceof RemoteTransportException)) { exception = new RemoteTransportException("Not a remote transport exception", null, null, exception); } final RemoteTransportException rtx = (RemoteTransportException) exception; try { handler.handleException(rtx); } catch (Exception e) { logger.error((Supplier<?>) () -> new ParameterizedMessage("failed to handle exception response [{}]", handler), e); } }
stream.setVersion(nodeVersion); stream.setFeatures(features); RemoteTransportException tx = new RemoteTransportException( nodeName, new TransportAddress(channel.getLocalAddress()), action, error); threadPool.getThreadContext().writeTo(stream);
private void handleException(final TransportResponseHandler handler, Throwable error) { if (!(error instanceof RemoteTransportException)) { error = new RemoteTransportException("None remote transport exception", null, null, error); } final RemoteTransportException rtx = (RemoteTransportException) error; try { handler.handleException(rtx); } catch (Throwable t) { logger.error("failed to handle exception response [{}]", t, handler); } }
protected RemoteTransportException wrapInRemote(Exception e) { if (e instanceof RemoteTransportException) { return (RemoteTransportException) e; } return new RemoteTransportException(localNode.getName(), localNode.getAddress(), action, e); }
protected RemoteTransportException wrapInRemote(Exception e) { if (e instanceof RemoteTransportException) { return (RemoteTransportException) e; } return new RemoteTransportException(localNode.getName(), localNode.getAddress(), action, e); }
protected RemoteTransportException wrapInRemote(Exception e) { if (e instanceof RemoteTransportException) { return (RemoteTransportException) e; } return new RemoteTransportException(localNode.getName(), localNode.getAddress(), action, e); }
protected RemoteTransportException wrapInRemote(Throwable t) { if (t instanceof RemoteTransportException) { return (RemoteTransportException) t; } return new RemoteTransportException(localNode.name(), localNode.getAddress(), action, t); }
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); } }); }
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 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); } } }); } }
@Override public void onFailure(Exception e) { RemoteTransportException exception = new RemoteTransportException("error while communicating with remote cluster [" + clusterName + "]", e); if (transportException.compareAndSet(null, exception) == false) { exception = transportException.accumulateAndGet(exception, (previous, current) -> { current.addSuppressed(previous); return current; }); } if (responsesCountDown.countDown()) { listener.onFailure(exception); } } });
private void handleException(final TransportResponseHandler handler, Throwable error) { if (!(error instanceof RemoteTransportException)) { error = new RemoteTransportException(error.getMessage(), error); } final RemoteTransportException rtx = (RemoteTransportException) error; if (ThreadPool.Names.SAME.equals(handler.executor())) { try { handler.handleException(rtx); } catch (Throwable e) { logger.error("failed to handle exception response [{}]", e, handler); } } else { threadPool.executor(handler.executor()).execute(new Runnable() { @Override public void run() { try { handler.handleException(rtx); } catch (Throwable e) { logger.error("failed to handle exception response [{}]", e, handler); } } }); } }
/** * simulate a remote error for the given requestId, will be wrapped * by a {@link RemoteTransportException} * * @param requestId the id corresponding to the captured send * request * @param t the failure to wrap */ public void handleRemoteError(final long requestId, final Throwable t) { final RemoteTransportException remoteException; if (rarely(Randomness.get())) { remoteException = new RemoteTransportException("remote failure, coming from local node", t); } else { try (BytesStreamOutput output = new BytesStreamOutput()) { output.writeException(t); remoteException = new RemoteTransportException("remote failure", output.bytes().streamInput().readException()); } catch (IOException ioException) { throw new ElasticsearchException("failed to serialize/deserialize supplied exception " + t, ioException); } } this.handleError(requestId, remoteException); }
@Override public void sendResponse(Throwable error) throws IOException { BytesStreamOutput stream = new BytesStreamOutput(); writeResponseExceptionHeader(stream); RemoteTransportException tx = new RemoteTransportException(targetTransport.nodeName(), targetTransport.boundAddress().boundAddresses()[0], action, error); stream.writeThrowable(tx); sendResponseData(stream.bytes().toBytes()); sourceTransportServiceAdapter.onResponseSent(requestId, action, error); }
@Override public void sendResponse(Exception exception) throws IOException { BytesStreamOutput stream = new BytesStreamOutput(); stream.setVersion(version); writeResponseExceptionHeader(stream); RemoteTransportException tx = new RemoteTransportException(targetTransport.nodeName(), targetTransport.boundAddress().boundAddresses()[0], action, exception); stream.writeException(tx); sendResponseData(BytesReference.toBytes(stream.bytes())); sourceTransportServiceAdapter.onResponseSent(requestId, action, exception); }