Thrift-1408: Delphi Test Server: Exception test case fails due to naming conflict with e.message
Client: delphi
Patch: jens Geyer
Fix name comflict with e.message 
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1195461 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_delphi_generator.cc b/compiler/cpp/src/generate/t_delphi_generator.cc
index fc684df..569afe3 100644
--- a/compiler/cpp/src/generate/t_delphi_generator.cc
+++ b/compiler/cpp/src/generate/t_delphi_generator.cc
@@ -981,7 +981,7 @@
   }
   out << "class(";
   if ( is_exception && (! is_x_factory)) {
-    out << "Exception";
+    out << "TException";
   } else {
     out << "TInterfacedObject, IBase, " << struct_intf_name;
   }
diff --git a/lib/delphi/src/Thrift.pas b/lib/delphi/src/Thrift.pas
index 6f352b1..48c3d47 100644
--- a/lib/delphi/src/Thrift.pas
+++ b/lib/delphi/src/Thrift.pas
@@ -54,8 +54,22 @@
     procedure Write( oprot: IProtocol );
   end;
 
+  // base class for IDL-generated exceptions
+  TException = class( SysUtils.Exception)
+  public
+    procedure Message;  // hide inherited property to prevent accidental read/write
+  end;
+
 implementation
 
+{ TException }
+
+procedure TException.Message;
+// hide inherited property to prevent accidental read/write
+begin
+  ASSERT( FALSE, 'Unexpected call to '+ClassName+'.message. Forgot the underscore?');
+end;
+
 { TApplicationException }
 
 constructor TApplicationException.Create;
diff --git a/lib/delphi/test/TestServer.pas b/lib/delphi/test/TestServer.pas
index c120712..67cce77 100644
--- a/lib/delphi/test/TestServer.pas
+++ b/lib/delphi/test/TestServer.pas
@@ -276,7 +276,7 @@
   begin
     x := TXception.Create;
     x.ErrorCode := 1001;
-    x.Message := 'This is an Xception';
+    x.Message_ := 'This is an Xception';
     raise x;
   end else
   if ( arg0 = 'Xception2') then