Author: chirino
Date: Thu Jun 21 17:24:53 2007
New Revision: 549650

URL: http://svn.apache.org/viewvc?view=rev&rev=549650
Log:
applied patch from https://issues.apache.org/activemq/browse/AMQNET-46.  Thanks 
Jonas Larsson\!

Modified:
    
activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Commands/ActiveMQTextMessage.cs

Modified: 
activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Commands/ActiveMQTextMessage.cs
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Commands/ActiveMQTextMessage.cs?view=diff&rev=549650&r1=549649&r2=549650
==============================================================================
--- 
activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Commands/ActiveMQTextMessage.cs
 (original)
+++ 
activemq/activemq-dotnet/trunk/src/main/csharp/ActiveMQ/Commands/ActiveMQTextMessage.cs
 Thu Jun 21 17:24:53 2007
@@ -27,6 +27,8 @@
                public const int SIZE_OF_INT = 4; // sizeof(int) - though 
causes unsafe issues with net 1.1
         
         private String text;
+
+        private static System.Text.UTF8Encoding encoder = new 
System.Text.UTF8Encoding();
         
         public ActiveMQTextMessage()
         {
@@ -63,13 +65,7 @@
                     byte[] data = this.Content;
                     if (data != null)
                     {
-                        // TODO assume that the text is ASCII
-                        char[] chars = new char[data.Length - SIZE_OF_INT];
-                        for (int i = 0; i < chars.Length; i++)
-                        {
-                            chars[i] = (char) data[i + SIZE_OF_INT];
-                        }
-                        text = new String(chars);
+                        text = encoder.GetString(data, SIZE_OF_INT, 
data.Length - SIZE_OF_INT);
                     }
                 }
                 return text;
@@ -83,9 +79,9 @@
                                        // TODO lets make the evaluation of the 
Content lazy!
                                        
                                        // TODO assume that the text is ASCII
-                                       
-                    byte[] sizePrefix = 
System.BitConverter.GetBytes(text.Length);
-                                       data = new byte[text.Length + 
sizePrefix.Length];  //int at the front of it
+                    byte[] utf8bytes = encoder.GetBytes( this.text );
+                    byte[] sizePrefix = 
System.BitConverter.GetBytes(utf8bytes.Length);
+                    data = new byte[utf8bytes.Length + sizePrefix.Length];  
//int at the front of it
                                                                                
                                        
                                        // add the size prefix
                                        for (int j = 0; j < sizePrefix.Length; 
j++)
@@ -99,10 +95,9 @@
                     }
                                        
                                        // Add the data.
-                    char[] chars = text.ToCharArray();
-                                       for (int i = 0; i < chars.Length; i++)
+                    for (int i = 0; i < utf8bytes.Length; i++)
                     {
-                        data[i + sizePrefix.Length] = (byte)chars[i];
+                        data[i + sizePrefix.Length] = (byte)utf8bytes[i];
                     }
                                }
                                this.Content = data;


Reply via email to