Ticket Bugnote title
#356 Unicode keys from events are not handled correctly.
description

Unicode keys in events may result in creation of additional entries causing the original entries to not be updated.

#430 Difference in ClassID type/range between .NET, C++ and Java
description

The difference in the ClassId type/range between C++, .NET and Java could clash and cause undefined behavior.

workaround

Use class IDs well within the signed integer range to avoid undefined behaviour between C++, .NET and Java APIs.

#469 Exceptions from the server containing non-ascii data are not correctly logged by the client
description

The Native Client is interpreting the Exception strings that are sent from the server as ascii; however, when the server is configured for a non-English locale that has a message bundle (such as "ja_JP" aka Japanese) it is possible for these strings to contain utf-16 encoded data. In these cases the Native Client will split each 2-byte character into two 1-byte characters which produces jiberish. The problem only impacts logging, all non-ascii strings storedd in the cache itself are correctly preserved.

#90 Gathering Statistics may fail on some Windows platforms with an error code indicating that permission denied.
description

Users may be required to have Administrator rights or Performance Monitor Users group rights on some Windows platforms in order to read the registry performance counters (on which the GemFire Native Client's statistics sampling is based.)

workaround

Disable statistics sampling or grant Administrator rights or Performance Monitor Users group rights to the user running the process on the local machine.

#316 Running Native Client applications from within the Microsoft Visual Studio Debugger may cause performance degradation
description

When running C# application with our native client, they see significant (about a 10x) performance degredation in de-serialization, when running inside the Visual Studio environment. This is caused by the Visual Studio memory manager when copying data back and forth between managed and unmanaged code spaces.

workaround

Confirm the performance of your application outside of Visual Studio to eliminate the debugger's memory management overhead as a factor.

#382 Client and server caches can have inconsistent values for a key that is concurrently updated by multiple threads in the client
description

When several threads concurrently update an entry in the client, it is possible that the value updated by a thread prevails in the client cache, whereas a value updated by a different thread prevails in the server cache. This is expected behavior, because GemFire does not provide total ordering guarantee of events for an entry across threads that update the entry. Note that event order is guaranteed for events generated by the same thread.

#466 Possible timezone inconsistency between Java and Native Client DateTime
description

Both the Java server and Native client expect/use DateTime in UTC. If the application has need for other time zone it should convert to UTC before a Put and convert from UTC after a Get.

workaround

Use the DateTime.ToUniversalTime() method for conversion if needed, for example: DateTime t1 = new DateTime(2009, 8, 13, 4, 11, 0, DateTimeKind.Local); region.Put(key, t1.ToUniversalTime());

#513 CacheableString.Value may cause AccessViolationException during memory pressure
description

In some scenarios such as low memory situations CacheableString.Value may throw an AccessViolationException.

workaround

Use an intermediate temporary value such as:

CacheableString temp = ((CacheableString)region.Get(key));

var y = temp.Value;

And use "y" from then on.