How would you fix this? Possibly by copying the input array to a local array as the first step?
But then you might copy a lot of data, which is in 99% of the cases totally unnecessary.
Have a separate threadsafe and a non-threadsafe constructor for char[]?
EDIT: another idea is to do a hash of the input array, and compare between start and end. But that also requires an O(n) walk through the input...