slice2sl generates code for the dispatch__ operation like this:
The binary search shown above can fail to find the operation name, as no proper string comparison is performed, and then one gets an Ice.OperationNotExistException when one should not.Code:public override Ice.DispatchStatus dispatch__(IceInternal.Incoming inS__, Ice.Current current__) { int pos = _System.Array.BinarySearch(all__, current__.operation); . . . }
Replacing the code above with
works for me.Code:int pos = _System.Array.BinarySearch(all__, 0, all__.Length, current__.operation, IceUtil.StringUtil.OrdinalStringComparer);
One could also replace the operations and types with their generic equivalents, i.e. BinarySearch<string> and IComparer<string>.
Karl

Reply With Quote
