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