You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2018/08/07 21:29:10 UTC
[thrift] branch master updated: THRIFT-4609 keep InnerException
wherever appropriate Client: C# Patch: Jens Geyer
This is an automated email from the ASF dual-hosted git repository.
jensg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git
The following commit(s) were added to refs/heads/master by this push:
new 6e67faa THRIFT-4609 keep InnerException wherever appropriate Client: C# Patch: Jens Geyer
6e67faa is described below
commit 6e67faa92827ece022380b211c2caaadd6145bf5
Author: Jens Geyer <je...@apache.org>
AuthorDate: Mon Aug 6 23:31:38 2018 +0200
THRIFT-4609 keep InnerException wherever appropriate
Client: C#
Patch: Jens Geyer
This closes #1576
---
lib/csharp/src/Protocol/TJSONProtocol.cs | 13 +++++++------
lib/csharp/src/Protocol/TProtocolException.cs | 8 ++++----
lib/csharp/src/TApplicationException.cs | 2 +-
lib/csharp/src/TException.cs | 4 ++--
lib/csharp/src/Transport/THttpClient.cs | 12 ++++++------
lib/csharp/src/Transport/TNamedPipeServerTransport.cs | 8 ++++----
lib/csharp/src/Transport/TServerSocket.cs | 10 +++++-----
lib/csharp/src/Transport/TTLSServerSocket.cs | 10 +++++-----
lib/csharp/src/Transport/TTransportException.cs | 8 ++++----
9 files changed, 38 insertions(+), 37 deletions(-)
diff --git a/lib/csharp/src/Protocol/TJSONProtocol.cs b/lib/csharp/src/Protocol/TJSONProtocol.cs
index 3390dc0..9dbdea9 100644
--- a/lib/csharp/src/Protocol/TJSONProtocol.cs
+++ b/lib/csharp/src/Protocol/TJSONProtocol.cs
@@ -859,19 +859,21 @@ namespace Thrift.Protocol
{
ReadJSONSyntaxChar(QUOTE);
}
+
string str = ReadJSONNumericChars();
if (context.EscapeNumbers())
{
ReadJSONSyntaxChar(QUOTE);
}
+
try
{
return Int64.Parse(str);
}
- catch (FormatException)
+ catch (FormatException fex)
{
throw new TProtocolException(TProtocolException.INVALID_DATA,
- "Bad data encounted in numeric data");
+ "Bad data encounted in numeric data", fex);
}
}
@@ -887,8 +889,7 @@ namespace Thrift.Protocol
byte[] arr = ReadJSONString(true);
double dub = Double.Parse(utf8Encoding.GetString(arr, 0, arr.Length), CultureInfo.InvariantCulture);
- if (!context.EscapeNumbers() && !Double.IsNaN(dub) &&
- !Double.IsInfinity(dub))
+ if (!context.EscapeNumbers() && !Double.IsNaN(dub) && !Double.IsInfinity(dub))
{
// Throw exception -- we should not be in a string in this case
throw new TProtocolException(TProtocolException.INVALID_DATA,
@@ -907,10 +908,10 @@ namespace Thrift.Protocol
{
return Double.Parse(ReadJSONNumericChars(), CultureInfo.InvariantCulture);
}
- catch (FormatException)
+ catch (FormatException fex)
{
throw new TProtocolException(TProtocolException.INVALID_DATA,
- "Bad data encounted in numeric data");
+ "Bad data encounted in numeric data", fex);
}
}
}
diff --git a/lib/csharp/src/Protocol/TProtocolException.cs b/lib/csharp/src/Protocol/TProtocolException.cs
index a89c3fc..c0f007e 100644
--- a/lib/csharp/src/Protocol/TProtocolException.cs
+++ b/lib/csharp/src/Protocol/TProtocolException.cs
@@ -48,14 +48,14 @@ namespace Thrift.Protocol
type_ = type;
}
- public TProtocolException(int type, string message)
- : base(message)
+ public TProtocolException(int type, string message, Exception inner = null)
+ : base(message, inner)
{
type_ = type;
}
- public TProtocolException(string message)
- : base(message)
+ public TProtocolException(string message, Exception inner = null)
+ : base(message, inner)
{
}
diff --git a/lib/csharp/src/TApplicationException.cs b/lib/csharp/src/TApplicationException.cs
index 0c5b08b..8dd7ae5 100644
--- a/lib/csharp/src/TApplicationException.cs
+++ b/lib/csharp/src/TApplicationException.cs
@@ -40,7 +40,7 @@ namespace Thrift
}
public TApplicationException(ExceptionType type, string message)
- : base(message)
+ : base(message, null) // TApplicationException is serializable, but we never serialize InnerException
{
this.type = type;
}
diff --git a/lib/csharp/src/TException.cs b/lib/csharp/src/TException.cs
index 35193c5..aa9a210 100644
--- a/lib/csharp/src/TException.cs
+++ b/lib/csharp/src/TException.cs
@@ -31,8 +31,8 @@ namespace Thrift
{
}
- public TException(string message)
- : base(message)
+ public TException(string message, Exception inner)
+ : base(message, inner)
{
}
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 @@ namespace Thrift.Transport
}
catch (IOException iox)
{
- throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString());
+ throw new TTransportException(TTransportException.ExceptionType.Unknown, iox.ToString(), iox);
}
}
@@ -217,11 +217,11 @@ namespace Thrift.Transport
}
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 @@ namespace Thrift.Transport
}
catch (IOException iox)
{
- throw new TTransportException(iox.ToString());
+ throw new TTransportException(iox.ToString(), iox);
}
}
@@ -360,7 +360,7 @@ namespace Thrift.Transport
}
catch (Exception exception)
{
- flushAsyncResult.AsyncException = new TTransportException(exception.ToString());
+ flushAsyncResult.AsyncException = new TTransportException(exception.ToString(), exception);
flushAsyncResult.UpdateStatusToComplete();
flushAsyncResult.NotifyCallbackWhenAvailable();
}
@@ -375,7 +375,7 @@ namespace Thrift.Transport
}
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 @@ namespace Thrift.Transport
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 @@ namespace Thrift.Transport
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 @@ namespace Thrift.Transport
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 @@ namespace Thrift.Transport
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 @@ namespace Thrift.Transport
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 @@ namespace Thrift.Transport
}
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 @@ namespace Thrift.Transport
}
catch (Exception ex)
{
- throw new TTransportException(ex.ToString());
+ throw new TTransportException(ex.ToString(), ex);
}
}
@@ -167,7 +167,7 @@ namespace Thrift.Transport
}
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 @@ namespace Thrift.Transport
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 @@ namespace Thrift.Transport
}
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 @@ namespace Thrift.Transport
}
catch (Exception ex)
{
- throw new TTransportException(ex.ToString());
+ throw new TTransportException(ex.ToString(), ex);
}
}
@@ -214,7 +214,7 @@ namespace Thrift.Transport
}
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 @@ namespace Thrift.Transport
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)
{
}