THRIFT-5838 ensure original exception added to new exceptions
Client: netstd
Patch: Bruce Irschick
This closes #3069
diff --git a/lib/netstd/Thrift/Transport/Client/THttpTransport.cs b/lib/netstd/Thrift/Transport/Client/THttpTransport.cs
index e724665..16e228b 100644
--- a/lib/netstd/Thrift/Transport/Client/THttpTransport.cs
+++ b/lib/netstd/Thrift/Transport/Client/THttpTransport.cs
@@ -167,7 +167,7 @@
}
catch (IOException iox)
{
- throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString());
+ throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString(), iox);
}
}
@@ -260,16 +260,20 @@
}
catch (IOException iox)
{
- throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString());
+ throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString(), iox);
}
catch (HttpRequestException wx)
{
throw new TTransportException(TTransportException.ExceptionType.Unknown,
- "Couldn't connect to server: " + wx);
+ "Couldn't connect to server: " + wx, wx);
+ }
+ catch (OperationCanceledException ocx)
+ {
+ throw new TTransportException(TTransportException.ExceptionType.Interrupted, ocx.Message, ocx);
}
catch (Exception ex)
{
- throw new TTransportException(TTransportException.ExceptionType.Unknown, ex.Message);
+ throw new TTransportException(TTransportException.ExceptionType.Unknown, ex.Message, ex);
}
finally
{
diff --git a/lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs b/lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs
index 138c7fd..12fc9d3 100644
--- a/lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs
+++ b/lib/netstd/Thrift/Transport/Server/TNamedPipeServerTransport.cs
@@ -347,7 +347,7 @@
catch (Exception e)
{
Close();
- throw new TTransportException(TTransportException.ExceptionType.NotOpen, e.Message);
+ throw new TTransportException(TTransportException.ExceptionType.NotOpen, e.Message, e);
}
}
diff --git a/lib/netstd/Thrift/Transport/Server/TServerSocketTransport.cs b/lib/netstd/Thrift/Transport/Server/TServerSocketTransport.cs
index 43663c3..96753e1 100644
--- a/lib/netstd/Thrift/Transport/Server/TServerSocketTransport.cs
+++ b/lib/netstd/Thrift/Transport/Server/TServerSocketTransport.cs
@@ -51,10 +51,10 @@
_server.Server.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false);
_server.Server.NoDelay = true;
}
- catch (Exception)
+ catch (Exception ex)
{
_server = null;
- throw new TTransportException("Could not create ServerSocket on port " + port + ".");
+ throw new TTransportException("Could not create ServerSocket on port " + port + ".", ex);
}
}
@@ -95,7 +95,7 @@
}
catch (SocketException sx)
{
- throw new TTransportException("Could not accept on listening socket: " + sx.Message);
+ throw new TTransportException("Could not accept on listening socket: " + sx.Message, sx);
}
}
}
@@ -147,7 +147,7 @@
}
catch (Exception ex)
{
- throw new TTransportException(ex.ToString());
+ throw new TTransportException(ex.ToString(), ex);
}
}
@@ -161,7 +161,7 @@
}
catch (Exception ex)
{
- throw new TTransportException("WARNING: Could not close server socket: " + ex);
+ throw new TTransportException("WARNING: Could not close server socket: " + ex, ex);
}
_server = null;
}
diff --git a/lib/netstd/Thrift/Transport/Server/TTlsServerSocketTransport.cs b/lib/netstd/Thrift/Transport/Server/TTlsServerSocketTransport.cs
index 0f72438..b612d67 100644
--- a/lib/netstd/Thrift/Transport/Server/TTlsServerSocketTransport.cs
+++ b/lib/netstd/Thrift/Transport/Server/TTlsServerSocketTransport.cs
@@ -74,10 +74,10 @@
_server = new TcpListener(IPAddress.Any, port);
_server.Server.NoDelay = true;
}
- catch (Exception)
+ catch (Exception ex)
{
_server = null;
- throw new TTransportException($"Could not create ServerSocket on port {port}.");
+ throw new TTransportException($"Could not create ServerSocket on port {port}.", ex);
}
}
@@ -118,7 +118,7 @@
}
catch (SocketException sx)
{
- throw new TTransportException($"Could not accept on listening socket: {sx.Message}");
+ throw new TTransportException($"Could not accept on listening socket: {sx.Message}", sx);
}
}
}
@@ -158,7 +158,7 @@
}
catch (Exception ex)
{
- throw new TTransportException(ex.ToString());
+ throw new TTransportException(ex.ToString(), ex);
}
}
@@ -172,7 +172,7 @@
}
catch (Exception ex)
{
- throw new TTransportException($"WARNING: Could not close server socket: {ex}");
+ throw new TTransportException($"WARNING: Could not close server socket: {ex}", ex);
}
_server = null;