Re: Cannot merge sets

Hi Doug,

This may be the bug that Randall Simons uncovered in:

  http://www.unidata.ucar.edu/staff/russ/visad/msg02789.html

This would be consistent with Steve's theory.

The fix isn't yet on our ftp server, but is in the attached
fix.jar file.

Good luck,
Bill

Doug Lindholm wrote:
> 
> I'm getting the following exception while contructing my display with
> several fields with different time domains:
> 
> visad.VisADException: Cannot merge sets
>     at visad.Set.merge1DSets(Set.java:376)
>     at visad.DataShadow.setAnimationSampling(DataShadow.java:72)
>     at visad.SimpleSet.setAnimationSampling(SimpleSet.java:107)
>     at visad.SampledSet.computeRanges(SampledSet.java:208)
>     at visad.FieldImpl.computeRanges(FieldImpl.java:2708)
>     at visad.DataRenderer.computeRanges(DataRenderer.java:278)
>     at visad.DataRenderer.prepareAction(DataRenderer.java:243)
>     at visad.DisplayRenderer.prepareAction(DisplayRenderer.java:633)
>     at visad.DisplayImpl.doAction(DisplayImpl.java:1383)
>     at visad.ActionImpl.run(ActionImpl.java:238)
>     at visad.util.ThreadPool$ThreadMinnow.run(ThreadPool.java:95)
> visad.VisADError: Action.run: visad.VisADException: Cannot merge sets
>     at visad.ActionImpl.run(ActionImpl.java:271)
>     at visad.util.ThreadPool$ThreadMinnow.run(ThreadPool.java:95)
> 
> It is not consistant (and neither is my data) so I'm wondering if it is
> due to the nature of my data. I've looked at the relevant bit of Set
> code:
> 
>     // find indices of set not covered by this
>     int set_length = set.getLength();
>     boolean[] set_indices = new boolean[set_length];
>     for (int i=0; i<set_length; i++) set_indices[i] = true;
>     if (set_length > 1) {
>       // set indices for values in this
>       int[] test_indices = set.doubleToIndex(values);
>       try {
>         for (int i=0; i<length; i++) {
>           if (test_indices[i] > -1) set_indices[test_indices[i]]
> false;
>         }
>       } catch (ArrayIndexOutOfBoundsException aioobe) {
>         throw new VisADException("Cannot merge sets");
>       }
>     }
> 
> but don't quite understand what conditions would lead to this exception.
> 
> Let me know if there is something obvious, otherwise I'll try to make a
> reproducible case for debugging.
> 
> Thanks,
> Doug
> 
> --
> *----------------------------------------------------------------------*
> | Doug Lindholm, Software Engineer          |  E-mail: lind@xxxxxxxx   |
> | Research Applications Program             |   Phone: 303-497-8374    |
> | National Center for Atmospheric Research  |                          |
> | P.O. Box 3000                             |     There's no place     |
> | Boulder, Colorado 80307-3000              |        like $HOME        |
> *----------------------------------------------------------------------*

-- 
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI  53706
hibbard@xxxxxxxxxxxxxxxxx  608-263-4427  fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html

Attachment: fix.jar
Description: application/java-archive