There is an Issue 4393 about this bug.

I've applyed dunhamsteve's patch and also in all binarySearch()
functions in Arrays.java and Collections.java changed:
-      final int mid = low + ((high - low) >> 1)
+      final int length = high - low;
+      final int half = length >> 1;
+      final int mid = low + half;

and just repacked gwt-user.jar replacing those files.
This worked for me.

On 16 июн, 03:12, DenNukem <alt...@gmail.com> wrote:
> So did you end up rebuilding the GWT itself? Where do I start to apply
> this patch?
>
> On Jun 9, 4:31 pm, "dunhamst...@gmail.com" <dunhamst...@gmail.com>
> wrote:
>
> > This is occurring for us in the Arrays.mergeSort() code.  A reduced
> > testcase (which looks like the binarySearch code) is in the webkit bug
> > tracking system at:
>
> >    https://bugs.webkit.org/show_bug.cgi?id=40355
>
> > It appears that in some complex expressions the right shift operator
> > is not evaluating correctly.  Assigning the result of the right shift
> > to a temporary variable and then using it appears to make the problem
> > go away.
>
> > As a temporary fix, we're patching Arrays.java:mergeSort() to assign
> > the result of the right shift to a temporary variable before using it.
> > If you're using binary search you'd need to patch those functions as
> > well.  It's a bit of a hack, but it seems to work. I've included our
> > patch below, in case it is helpful to someone.
>
> > diff --git a/super/com/google/gwt/emul/java/util/Arrays.java b/super/
> > com/google/
> > index 89dcc33..b7ba6fa 100644
> > --- a/super/com/google/gwt/emul/java/util/Arrays.java
> > +++ b/super/com/google/gwt/emul/java/util/Arrays.java
> > @@ -1322,7 +1322,8 @@ public class Arrays {
> >      // recursively sort both halves, using the array as temp space
> >      int tempLow = low + ofs;
> >      int tempHigh = high + ofs;
> > -    int tempMid = tempLow + ((tempHigh - tempLow) >> 1);
> > +    int half = length >> 1;
> > +    int tempMid = tempLow + half;
> >      mergeSort(array, temp, tempLow, tempMid, -ofs, comp);
> >      mergeSort(array, temp, tempMid, tempHigh, -ofs, comp);

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to