private RpcMetadataResponse createRpcServerMetadata(ServerConnector connector) throws UnknownHostException { String host = connector.getHost(); if (null == host) { // "null" means binding to all interfaces, we need to pick one so the client gets a real // address and not "0.0.0.0" or similar. host = InetAddress.getLocalHost().getHostName(); } final int port = connector.getLocalPort(); return new RpcMetadataResponse( String.format(Locale.ROOT, "%s:%d", host, port)); }
final RpcMetadataResponse rpcMetadata = new RpcMetadataResponse("localhost:8765"); LinkedList<Response> responses = new LinkedList<>();
final RpcMetadataResponse rpcMetadata = new RpcMetadataResponse("localhost:8765"); LinkedList<Response> responses = new LinkedList<>();
final RpcMetadataResponse rpcMetadata = new RpcMetadataResponse("localhost:8765"); LinkedList<Response> responses = new LinkedList<>();
RpcMetadataResponse metadata = new RpcMetadataResponse("localhost:8765"); FetchResponse response = new FetchResponse(frame, false, false, metadata);
RpcMetadataResponse metadata = new RpcMetadataResponse("localhost:8765"); FetchResponse response = new FetchResponse(frame, false, false, metadata);
RpcMetadataResponse metadata = new RpcMetadataResponse("localhost:8765"); FetchResponse response = new FetchResponse(frame, false, false, metadata);
builder.setMetadata(rpcMetadata.serialize());
builder.setMetadata(rpcMetadata.serialize());
@Override ErrorResponse deserialize(Message genericMsg) { final Responses.ErrorResponse msg = ProtobufService.castProtobufMessage(genericMsg, Responses.ErrorResponse.class); List<String> exceptions = null; if (msg.getHasExceptions()) { exceptions = msg.getExceptionsList(); } String errorMessage = null; if (msg.hasField(ERROR_MESSAGE_DESCRIPTOR)) { errorMessage = msg.getErrorMessage(); } String sqlState = null; if (msg.hasField(SQL_DESCRIPTOR)) { sqlState = msg.getSqlState(); } AvaticaSeverity severity = null; if (msg.hasField(SEVERITY_DESCRIPTOR)) { severity = AvaticaSeverity.fromProto(msg.getSeverity()); } RpcMetadataResponse metadata = null; if (msg.hasField(METADATA_DESCRIPTOR)) { metadata = RpcMetadataResponse.fromProto(msg.getMetadata()); } return new ErrorResponse(exceptions, errorMessage, msg.getErrorCode(), sqlState, severity, metadata); }
@Override ErrorResponse deserialize(Message genericMsg) { final Responses.ErrorResponse msg = ProtobufService.castProtobufMessage(genericMsg, Responses.ErrorResponse.class); final Descriptor desc = msg.getDescriptorForType(); List<String> exceptions = null; if (msg.getHasExceptions()) { exceptions = msg.getExceptionsList(); } String errorMessage = null; if (ProtobufService.hasField(msg, desc, Responses.ErrorResponse.ERROR_MESSAGE_FIELD_NUMBER)) { errorMessage = msg.getErrorMessage(); } String sqlState = null; if (ProtobufService.hasField(msg, desc, Responses.ErrorResponse.SQL_STATE_FIELD_NUMBER)) { sqlState = msg.getSqlState(); } AvaticaSeverity severity = null; if (ProtobufService.hasField(msg, desc, Responses.ErrorResponse.SEVERITY_FIELD_NUMBER)) { severity = AvaticaSeverity.fromProto(msg.getSeverity()); } RpcMetadataResponse metadata = null; if (ProtobufService.hasField(msg, desc, Responses.ErrorResponse.METADATA_FIELD_NUMBER)) { metadata = RpcMetadataResponse.fromProto(msg.getMetadata()); } return new ErrorResponse(exceptions, errorMessage, msg.getErrorCode(), sqlState, severity, metadata); }
@Override ErrorResponse deserialize(Message genericMsg) { final Responses.ErrorResponse msg = ProtobufService.castProtobufMessage(genericMsg, Responses.ErrorResponse.class); List<String> exceptions = null; if (msg.getHasExceptions()) { exceptions = msg.getExceptionsList(); } String errorMessage = null; if (msg.hasField(ERROR_MESSAGE_DESCRIPTOR)) { errorMessage = msg.getErrorMessage(); } String sqlState = null; if (msg.hasField(SQL_DESCRIPTOR)) { sqlState = msg.getSqlState(); } AvaticaSeverity severity = null; if (msg.hasField(SEVERITY_DESCRIPTOR)) { severity = AvaticaSeverity.fromProto(msg.getSeverity()); } RpcMetadataResponse metadata = null; if (msg.hasField(METADATA_DESCRIPTOR)) { metadata = RpcMetadataResponse.fromProto(msg.getMetadata()); } return new ErrorResponse(exceptions, errorMessage, msg.getErrorCode(), sqlState, severity, metadata); }
@Override public Responses.ErrorResponse serialize() { Responses.ErrorResponse.Builder builder = Responses.ErrorResponse.newBuilder(); if (null != rpcMetadata) { builder.setMetadata(rpcMetadata.serialize()); } if (null != exceptions) { builder.setHasExceptions(true); builder.addAllExceptions(exceptions); } else { builder.setHasExceptions(false); } if (null != errorMessage) { builder.setErrorMessage(errorMessage); } if (null != sqlState) { builder.setSqlState(sqlState); } if (null != severity) { builder.setSeverity(severity.toProto()); } return builder.setErrorCode(errorCode).build(); }
@Override Responses.ErrorResponse serialize() { Responses.ErrorResponse.Builder builder = Responses.ErrorResponse.newBuilder(); if (null != rpcMetadata) { builder.setMetadata(rpcMetadata.serialize()); } if (null != exceptions) { builder.setHasExceptions(true); builder.addAllExceptions(exceptions); } else { builder.setHasExceptions(false); } if (null != errorMessage) { builder.setErrorMessage(errorMessage); } if (null != sqlState) { builder.setSqlState(sqlState); } if (null != severity) { builder.setSeverity(severity.toProto()); } return builder.setErrorCode(errorCode).build(); }
static ResultSetResponse fromProto(Responses.ResultSetResponse msg) { final Descriptor desc = msg.getDescriptorForType(); String connectionId = null; if (ProtobufService.hasField(msg, desc, Responses.ResultSetResponse.CONNECTION_ID_FIELD_NUMBER)) { connectionId = msg.getConnectionId(); } Meta.Signature signature = null; if (ProtobufService.hasField(msg, desc, Responses.ResultSetResponse.SIGNATURE_FIELD_NUMBER)) { signature = Meta.Signature.fromProto(msg.getSignature()); } Meta.Frame frame = null; if (ProtobufService.hasField(msg, desc, Responses.ResultSetResponse.FIRST_FRAME_FIELD_NUMBER)) { frame = Meta.Frame.fromProto(msg.getFirstFrame()); } RpcMetadataResponse metadata = null; if (ProtobufService.hasField(msg, desc, Responses.ResultSetResponse.METADATA_FIELD_NUMBER)) { metadata = RpcMetadataResponse.fromProto(msg.getMetadata()); } return new ResultSetResponse(connectionId, msg.getStatementId(), msg.getOwnStatement(), signature, frame, msg.getUpdateCount(), metadata); }
static ResultSetResponse fromProto(Responses.ResultSetResponse msg) { String connectionId = null; if (msg.hasField(CONNECTION_ID_DESCRIPTOR)) { connectionId = msg.getConnectionId(); } Meta.Signature signature = null; if (msg.hasField(SIGNATURE_DESCRIPTOR)) { signature = Meta.Signature.fromProto(msg.getSignature()); } Meta.Frame frame = null; if (msg.hasField(FIRST_FRAME_DESCRIPTOR)) { frame = Meta.Frame.fromProto(msg.getFirstFrame()); } RpcMetadataResponse metadata = null; if (msg.hasField(METADATA_DESCRIPTOR)) { metadata = RpcMetadataResponse.fromProto(msg.getMetadata()); } return new ResultSetResponse(connectionId, msg.getStatementId(), msg.getOwnStatement(), signature, frame, msg.getUpdateCount(), metadata); }
@Override public Responses.ErrorResponse serialize() { Responses.ErrorResponse.Builder builder = Responses.ErrorResponse.newBuilder(); if (null != rpcMetadata) { builder.setMetadata(rpcMetadata.serialize()); } if (null != exceptions) { builder.setHasExceptions(true); builder.addAllExceptions(exceptions); } else { builder.setHasExceptions(false); } if (null != errorMessage) { builder.setErrorMessage(errorMessage); } if (null != sqlState) { builder.setSqlState(sqlState); } if (null != severity) { builder.setSeverity(severity.toProto()); } return builder.setErrorCode(errorCode).build(); }
@Test public void testToClientRTE() { final String message = "There was an error"; final int code = 23; final String state = "a1b2c"; final AvaticaSeverity severity = AvaticaSeverity.ERROR; final List<String> exceptions = Arrays.asList("Server Stacktrace 1", "Server Stacktace 2"); final RpcMetadataResponse metadata = new RpcMetadataResponse("localhost:8765"); final ErrorResponse resp = new ErrorResponse(message, code, state, severity, exceptions, metadata); AvaticaClientRuntimeException exception = resp.toException(); assertTrue("Expected error message to end with '" + resp.errorMessage + "', but was '" + exception.getMessage() + "'", exception.getMessage().endsWith(resp.errorMessage)); assertEquals(resp.errorCode, exception.getErrorCode()); assertEquals(resp.severity, exception.getSeverity()); assertEquals(resp.sqlState, exception.getSqlState()); assertEquals(resp.exceptions, exception.getServerExceptions()); assertEquals(resp.rpcMetadata, exception.getRpcMetadata()); } }
static ResultSetResponse fromProto(Responses.ResultSetResponse msg) { String connectionId = null; if (msg.hasField(CONNECTION_ID_DESCRIPTOR)) { connectionId = msg.getConnectionId(); } Meta.Signature signature = null; if (msg.hasField(SIGNATURE_DESCRIPTOR)) { signature = Meta.Signature.fromProto(msg.getSignature()); } Meta.Frame frame = null; if (msg.hasField(FIRST_FRAME_DESCRIPTOR)) { frame = Meta.Frame.fromProto(msg.getFirstFrame()); } RpcMetadataResponse metadata = null; if (msg.hasField(METADATA_DESCRIPTOR)) { metadata = RpcMetadataResponse.fromProto(msg.getMetadata()); } return new ResultSetResponse(connectionId, msg.getStatementId(), msg.getOwnStatement(), signature, frame, msg.getUpdateCount(), metadata); }
@Test public void testToClientRTE() { final String message = "There was an error"; final int code = 23; final String state = "a1b2c"; final AvaticaSeverity severity = AvaticaSeverity.ERROR; final List<String> exceptions = Arrays.asList("Server Stacktrace 1", "Server Stacktace 2"); final RpcMetadataResponse metadata = new RpcMetadataResponse("localhost:8765"); final ErrorResponse resp = new ErrorResponse(message, code, state, severity, exceptions, metadata); AvaticaClientRuntimeException exception = resp.toException(); assertTrue("Expected error message to end with '" + resp.errorMessage + "', but was '" + exception.getMessage() + "'", exception.getMessage().endsWith(resp.errorMessage)); assertEquals(resp.errorCode, exception.getErrorCode()); assertEquals(resp.severity, exception.getSeverity()); assertEquals(resp.sqlState, exception.getSqlState()); assertEquals(resp.exceptions, exception.getServerExceptions()); assertEquals(resp.rpcMetadata, exception.getRpcMetadata()); } }