THRIFT-4609 keep InnerException wherever appropriate
Client: C#
Patch: Jens Geyer
This closes #1576
diff --git a/lib/csharp/src/Transport/THttpClient.cs b/lib/csharp/src/Transport/THttpClient.cs
index 06ed6bc..667fc25 100644
--- a/lib/csharp/src/Transport/THttpClient.cs
+++ b/lib/csharp/src/Transport/THttpClient.cs
@@ -139,7 +139,7 @@
}
catch (IOException iox)
{
- throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString());
+ throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString(), iox);
}
}
@@ -217,11 +217,11 @@
}
catch (IOException iox)
{
- throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString());
+ throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString(), iox);
}
catch (WebException wx)
{
- throw new TTransportException(TTransportException.ExceptionType.Unknown, "Couldn't connect to server: " + wx);
+ throw new TTransportException(TTransportException.ExceptionType.Unknown, "Couldn't connect to server: " + wx, wx);
}
}
@@ -316,7 +316,7 @@
}
catch (IOException iox)
{
- throw new TTransportException(iox.ToString());
+ throw new TTransportException(iox.ToString(), iox);
}
}
@@ -360,7 +360,7 @@
}
catch (Exception exception)
{
- flushAsyncResult.AsyncException = new TTransportException(exception.ToString());
+ flushAsyncResult.AsyncException = new TTransportException(exception.ToString(), exception);
flushAsyncResult.UpdateStatusToComplete();
flushAsyncResult.NotifyCallbackWhenAvailable();
}
@@ -375,7 +375,7 @@
}
catch (Exception exception)
{
- flushAsyncResult.AsyncException = new TTransportException(exception.ToString());
+ flushAsyncResult.AsyncException = new TTransportException(exception.ToString(), exception);
}
flushAsyncResult.UpdateStatusToComplete();
flushAsyncResult.NotifyCallbackWhenAvailable();
diff --git a/lib/csharp/src/Transport/TNamedPipeServerTransport.cs b/lib/csharp/src/Transport/TNamedPipeServerTransport.cs
index a6cfb2e..32215cf 100644
--- a/lib/csharp/src/Transport/TNamedPipeServerTransport.cs
+++ b/lib/csharp/src/Transport/TNamedPipeServerTransport.cs
@@ -130,7 +130,7 @@
if (stream != null)
eOuter = e;
else
- eOuter = new TTransportException(TTransportException.ExceptionType.Interrupted, e.Message);
+ eOuter = new TTransportException(TTransportException.ExceptionType.Interrupted, e.Message, e);
}
evt.Set();
}, null);
@@ -157,7 +157,7 @@
catch (Exception e)
{
Close();
- throw new TTransportException(TTransportException.ExceptionType.NotOpen, e.Message);
+ throw new TTransportException(TTransportException.ExceptionType.NotOpen, e.Message, e);
}
}
@@ -214,7 +214,7 @@
if (stream != null)
eOuter = e;
else
- eOuter = new TTransportException(TTransportException.ExceptionType.Interrupted, e.Message);
+ eOuter = new TTransportException(TTransportException.ExceptionType.Interrupted, e.Message, e);
}
evt.Set();
}, null);
@@ -265,7 +265,7 @@
if (stream != null)
eOuter = e;
else
- eOuter = new TTransportException(TTransportException.ExceptionType.Interrupted, e.Message);
+ eOuter = new TTransportException(TTransportException.ExceptionType.Interrupted, e.Message, e);
}
evt.Set();
}, null);
diff --git a/lib/csharp/src/Transport/TServerSocket.cs b/lib/csharp/src/Transport/TServerSocket.cs
index 40e47dc..d8ec62a 100644
--- a/lib/csharp/src/Transport/TServerSocket.cs
+++ b/lib/csharp/src/Transport/TServerSocket.cs
@@ -93,10 +93,10 @@
this.server = TSocketVersionizer.CreateTcpListener(this.port);
this.server.Server.NoDelay = true;
}
- catch (Exception)
+ catch (Exception ex)
{
server = null;
- throw new TTransportException("Could not create ServerSocket on port " + this.port + ".");
+ throw new TTransportException("Could not create ServerSocket on port " + this.port + ".", ex);
}
}
@@ -111,7 +111,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);
}
}
}
@@ -153,7 +153,7 @@
}
catch (Exception ex)
{
- throw new TTransportException(ex.ToString());
+ throw new TTransportException(ex.ToString(), ex);
}
}
@@ -167,7 +167,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/csharp/src/Transport/TTLSServerSocket.cs b/lib/csharp/src/Transport/TTLSServerSocket.cs
index aa8ff7c..716a97c 100644
--- a/lib/csharp/src/Transport/TTLSServerSocket.cs
+++ b/lib/csharp/src/Transport/TTLSServerSocket.cs
@@ -129,10 +129,10 @@
this.server = TSocketVersionizer.CreateTcpListener(this.port);
this.server.Server.NoDelay = true;
}
- catch (Exception)
+ catch (Exception ex)
{
server = null;
- throw new TTransportException("Could not create ServerSocket on port " + this.port + ".");
+ throw new TTransportException("Could not create ServerSocket on port " + this.port + ".", ex);
}
}
@@ -150,7 +150,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);
}
}
}
@@ -197,7 +197,7 @@
}
catch (Exception ex)
{
- throw new TTransportException(ex.ToString());
+ throw new TTransportException(ex.ToString(), ex);
}
}
@@ -214,7 +214,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);
}
this.server = null;
}
diff --git a/lib/csharp/src/Transport/TTransportException.cs b/lib/csharp/src/Transport/TTransportException.cs
index ae987d5..7f6cc18 100644
--- a/lib/csharp/src/Transport/TTransportException.cs
+++ b/lib/csharp/src/Transport/TTransportException.cs
@@ -40,14 +40,14 @@
this.type = type;
}
- public TTransportException(ExceptionType type, string message)
- : base(message)
+ public TTransportException(ExceptionType type, string message, Exception inner = null)
+ : base(message, inner)
{
this.type = type;
}
- public TTransportException(string message)
- : base(message)
+ public TTransportException(string message, Exception inner = null)
+ : base(message, inner)
{
}