internal void sendAndReceive(EncodedDataStream stream)
{
try
{
lock (this)
{
stream.send(outputStream);
stream.getMessage(inputStream);
int status = stream.getInt();
if (status != 0)
{
string message = stream.getString();
string sqlState = "";
if (protocolVersion >= Protocol.PROTOCOL_VERSION2)
{
sqlState = stream.getString();
}
// If empty string, use the state from NuoDbSqlCode
if (StringUtils.size(sqlState) == 0)
{
sqlState = NuoDbSqlCode.FindSQLState(status);
}
throw new NuoDbSqlException(message, sqlState, status);
}
}
}
catch (IOException exception)
{
throw new NuoDbSqlException(exception);
}
}